2016-12-22 2 views
0

Je travaille actuellement sur une base de thème WordPress avec le plugin Advanced Custom Fields, et je souhaite afficher une balise <div> lorsque l'instruction if est vraie. Voici mon code:Afficher la balise div dans l'instruction 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 } ?> 

ou quelque chose comme ça

<?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 } ?> 

Mais le contenu de la balise div ne montre pas. Toute réponse est appréciée! Merci beaucoup.

+0

votre code est perdu .. où est-ce? –

+0

Désolé ceci mon premier message, j'ai besoin de temps pour m'habituer à ce système. –

+0

hmm, bizarre. dans un php simple, je pense que cela devrait fonctionner. Y a-t-il une erreur signalée? aussi, avez-vous vérifié sur la source de la page (le html généré)? –

Répondre

0

certaines de vos instructions d'écho sont des balises php. utilisez ceci:

<?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

Merci Anuja Agarwal pour votre code, maintenant le div avait été montré sur la page html. –

+0

pouvez-vous s'il vous plaît accepter et upvote alors. vous savez, cliquez sur la coche à gauche de ma réponse. – ab29007

0

Si vous souhaitez afficher le code html en php, je vous suggère d'utiliser le code ci-dessous.

<?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

merci tout de même –

0

Je suppose que vous utilisez un champ ACF Pro Repeater. dans ce cas, vous devez utiliser the_row() qui définira le contenu correct du sous-champ. Regardez cet exemple de la Docs édité:

<?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; 

?> 

, je pense que votre code devrait ressembler davantage:

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

Et, je l'ai appris récemment, vous devez compter le lignes à l'extérieur de la boucle while. Sinon, il n'attrape pas le nombre de lignes.

+0

Merci elicohenator! –