2016-12-22 5 views
0

Теперь я работаю над базой темы WordPress с плагином Advanced Custom Fields, и я хочу показать тег <div>, когда утверждение if истинно. Вот мой код:показать тег div в сообщении php

<?php 
    $rows = get_field('classification'); 
    $sort = get_sub_field('sort'); 
    $row_count = count($rows); 
    for ($i = 1; $i <= $row_count; $i++)?> 
    <?php if ($i==1 || $i%5==0) { ?> 
     <div class="bor"></div> 
     <h3 style="text-align:center"> 
     <?php echo $sort; ?> 
     <a id="browser"></a></h3> 
     <div class="bor"></div> 
    <?php } ?> 

или что-то подобное

<?php 
    $rows = get_field('classification'); 
    $fenlei = get_sub_field('fenlei'); 
    $row_count = count($rows); 
    for ($i = 1; $i <= $row_count; $i++)?> 
    <?php if ($i==1 || $i%5==0) { ?> 
     echo '<div class="bor"></div>'; 
     echo '<h3 style="text-align:center">'; 
     <?php echo $fenlei; ?> 
     echo '<a id="browser"></a></h3>'; 
     <div class="bor"></div> 
    <?php } ?> 

Но содержание сНу тега не отображается. Любой ответ приветствуется! Большое спасибо.

+0

ваш код потерян .. где он? –

+0

Извините, это мой первый пост, мне нужно когда-нибудь использовать эту систему. –

+0

хм, странно. в простой php я думаю, что он должен работать. есть ли какая-либо ошибка? Кроме того, вы проверили источник страницы (сгенерированный html)? –

ответ

0

Некоторые из ваших выражений эха выходят из тегов php. используйте это:

<?php 
    $rows = get_field('classification'); 
    $fenlei = get_sub_field('fenlei'); 
    $row_count = count($rows); 

    for ($i = 1; $i <= $row_count; $i++){ 
     if ($i==1 || $i%5==0) { 
     echo "<div class='bor'></div> 
       <h3 style='text-align:center'>".$fenlei." 
       <a id='browser'></a></h3> 
       <div class='bor'></div>"; 
     } 
    } 
?> 
+0

Спасибо Anuja Agarwal за ваш код, теперь div был показан на странице html. –

+0

не могли бы вы принять и перенести его тогда. вы знаете, нажмите на галочку слева от моего ответа. – ab29007

0

Если вы хотите показать html в php, я предлагаю вам использовать приведенный ниже код.

<?php 
    $rows = get_field('classification'); 
    $fenlei = get_sub_field('fenlei'); 
    $row_count = count($rows); 
    for($i = 1; $i <= $row_count; $i++){ 
     if ($i==1 || $i%5==0) { 
      echo '&gt;div class="bor"&lt;&gt;/div&lt;'; 
      echo '&gt;h3 style="text-align:center"&lt;'; 
      echo $fenlei; 
      echo '&gt;a id="browser"&lt;&gt;/a&lt;&gt;/h3&lt;'; 
      echo '&gt;div class="bor"&lt;&gt;/div&lt;'; 
     } 
    } 
?> 
+0

спасибо все равно –

0

Я предполагаю, что вы используете поле повторителя ACF Pro. в этом случае вам необходимо использовать the_row(), который установит правильное содержание подполя. посмотрите на этот отредактированной пример из Docs:

<?php 
// check if the repeater field has rows of data 
if(have_rows('repeater_field_name')): 
    // loop through the rows of data 
    while (have_rows('repeater_field_name')) : the_row(); 
     // display a sub field value 
     the_sub_field('sub_field_name'); 
    endwhile; 
endif; 

?> 

так, я думаю, что ваш код должен выглядеть как:

<?php 
    if(have_rows('classification')): 
    while (have_rows('classification')) : the_row(); 
    // Your Code... 
    endwhile; 
endif; 
?> 

И, я недавно узнал, что вам нужно подсчитать строки за пределами цикла while. в противном случае он не поймает количество строк.

+0

Спасибо, elikohenator! –