2017-08-27 5 views
0

J'ai une boucle WordPress qui tire un champ ACF. J'ai besoin de déterminer si les noms de champs sont les mêmes et si oui, je veux les envelopper dans un div. J'ai créé une page d'index personnalisée, mais nous voulons pouvoir styler des champs avec le même nom d'auteur qu'une liste déroulante. Donc, je dois comparer en quelque sorte si le sont les mêmes.Comparaison d'un champ ACF dans une boucle WordPress pour voir s'ils sont identiques

Voici le site sur lequel je travaille http://test.improveyourenglish.com/library/ Donc, par exemple, je voudrais envelopper "Jane Austin" dans un div afin que je puisse le styler comme une liste déroulante.

Merci beaucoup, toute aide est grandement appréciée.

C'est le code que je suis actuellement en utilisant

add_action('genesis_loop', 'book_archive_page'); 
function book_archive_page() { 
echo '<div class="left-side">'; 
echo '<p>The following titles are sorted by author surnames.</p>'; 
?><div class="enter"><a href="#$term->name"><?php echo $term->name; ?> 
</div></a><?php 
$post_type = 'book'; 

// Get all the taxonomies for this post type 
$taxonomies = get_object_taxonomies(array('post_type' => $post_type) 
); 

foreach($taxonomies as $taxonomy) : 

    // Gets every "category" (term) in this taxonomy to get the 
respective posts 
    $terms = get_terms($taxonomy); 

    foreach($terms as $term) : ?> 

     <section class="category-section"> 

     <div class="row"> 
     <div class="span12"> 
      <a name="<?php echo $term->name; ?>"><h2 style="padding- 
    top: 300px; margin-top: -300px;"><?php echo $term->name; ?></h2> 
</a> 




     </div> 

     <?php 
     $args = array(
       'post_type' => $post_type, 
       'posts_per_page' => -1, //show all posts 
       'tax_query' => array(
        array(
         'taxonomy' => $taxonomy, 
         'field' => 'slug', 
         'terms' => $term->slug, 
        ) 
       ) 

      ); 
     $posts = new WP_Query($args); 

     if($posts->have_posts()): while($posts->have_posts()) : 
    $posts->the_post(); ?> 

      <div class="span4"> 

       <article class="inner-post clearfix"> 



        <div class="inner-content"> 

        <a href="<?php echo get_permalink(); ?>" title="Read <?php echo get_the_title(); ?>"><div class="author-archive-text"><?php the_field('author_full_name'); ?></div><div class="title-archive-book"><?php echo get_the_title(); ?></div></a> 


        </div> 
       </article> 


      </div> 

     <?php endwhile; endif; ?> 
     </div> 
     <hr> 
     </section> 

    <?php endforeach; 

endforeach; ?> 
<?php 
} 
echo '</div>'; 
+0

On ne sait pas ce que vous essayez de faire. Que voulez-vous comparer le champ ACF aussi? Qu'est-ce que "Jane Austen" - un titre de page/terme/champ ACF? – FluffyKitten

+0

La page est composée de types de publications personnalisées "livres" puis j'ai un champ personnalisé "nom de l'auteur" qui lie automatiquement la première lettre du champ personnalisé "nom de l'auteur" à une taxonomie "a, b, c, d, .... ". Je pourrais me demander comment faire ceci essentiellement si le champ personnalisé "nom d'auteur" est présent plus d'une fois alors je voudrais que le champ de nom d'auteur soit enveloppé dans un div pour que je puisse différencier les groupes d'auteurs. –

+0

La réponse ci-dessous a-t-elle fonctionné pour vous ou avez-vous encore besoin d'aide? – FluffyKitten

Répondre

0

Si je comprends ce que vous voulez bien, ce que vous devez faire est d'enregistrer le « courant » nom de l'auteur dans une variable, et l'utiliser dans votre boucle pour le comparer au nom de l'auteur suivant. S'il s'agit d'un auteur différent, mettez fin au wrapper de l'auteur précédent et démarrez un nouveau wrapper pour l'auteur suivant.

$current_author = ""; // variable to store the current author 

$posts = new WP_Query($args); ?> 

<div class="author-wrapper"> <!-- start the wrapper div for the first author --> 

<?php if($posts->have_posts()): while($posts->have_posts()) : $posts->the_post(); ?> 

    <?php 
    // check if we have a new author 
    if (the_field('author_full_name') != $current_author) { 
     // update current_author var to make the new author the current one 
     $current_author = the_field('author_full_name'); 
     // close the previous author's wrapper and start a new one 
     ?> 
     </div> 
     <div class="author-wrapper"> 
    <?php } ?> 

     <div class="span4"> 
      <article class="inner-post clearfix"> 
       <div class="inner-content"> 

       <a href="<?php echo get_permalink(); ?>" title="Read <?php echo get_the_title(); ?>"><div class="author-archive-text"><?php the_field('author_full_name'); ?></div><div class="title-archive-book"><?php echo get_the_title(); ?></div></a> 

       </div> 
      </article> 

     </div> 
<?php endwhile; endif; ?> 

</div> <!-- end the wrapper div for the last author -->