ACF Relatioshionship не появится, если я не поставлю код перед всеми остальными циклами wordpress - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь отобразить поле отношений ACF на моей домашней странице WordPress. На моей домашней странице есть несколько циклов запросов для отображения сообщений из определенных категорий.

Это работает, если я поставлю свой код вверху страницы. Но когда я пытаюсь вставить свой код в середину моей страницы, после цикла запроса ничего не появляется. Я предполагаю, что есть конфликт с моей петлей запроса. Я использую данные поста сброса на каждом цикле.

Есть подсказка?

Вот мой код:

<?php $posts = get_field('relationnel');

if($posts): 
?>
<h3>Articles Similaires</h3>

<div class="container">
<div class="row">   
<?php foreach( $posts as $post): // ne pas changer $post IMPORTANT 
setup_postdata($post); 
?>
<div class="col-lg-4 col-md-6 col-sm-6"> 
<div class="col-lg-12 wrapper-archives ">
<h2>        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<br></h2>
        <h3>        <?php the_field('date'); ?>
<br></h3>
<div class="sommaire">
<?php // check if the repeater field has rows of data
if( have_rows('sommaire') ): while ( have_rows('sommaire') ) : the_row(); ?>
<?php  // display a sub field value the_sub_field('titre'); ?> </br>  
<?php  endwhile; else : // no rows found
endif;?>
</div>  </div> </div>
<?php endforeach; ?>

</div>
</div>
<?php 
    wp_reset_postdata(); // IMPORTANT - réinitialiser l'objet $post sur la 
requête principale
endif; 
?>

Если я отправлю код выше после цикла запроса, ничего не появится. Вот мой цикл запросов

<div id="owl-example" class="owl-carousel">
<?php query_posts( array( 'posts_per_page' => 3,) ); ?>

<?php while ( have_posts() ) : the_post();?>
<?php if (has_post_thumbnail( $post->ID ) ): ?> 
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID 
), 'single-post-thumbnail' ); ?>

<div class="owl-slide" style="background-image: url('<?php echo $image[0]; 
>');">
<div class="owl--text">
<span class="categorie-home"><?php the_category (); ?></span>   
<?php the_title (); ?>  </div>
</div>          <?php endif; ?>

 <?php endwhile;  // 4. On réinitialise à la requête principale (important)
 wp_reset_postdata();
 ?>
 </div>

1 Ответ

0 голосов
/ 15 марта 2019

Я решаю проблему, помещая wp_reset_query вместо wp_reset_postdata в моем цикле запросов

 <?php wp_reset_query(); ?>

Мой цикл запросов сейчас:

<div id="owl-example" class="owl-carousel">
<?php query_posts( array( 'posts_per_page' => 3,) ); ?>

<?php while ( have_posts() ) : the_post();?>
<?php if (has_post_thumbnail( $post->ID ) ): ?> 
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID 
), 'single-post-thumbnail' ); ?>

<div class="owl-slide" style="background-image: url('<?php echo $image[0]; 
>');">
<div class="owl--text">
<span class="categorie-home"><?php the_category (); ?></span>   
<?php the_title (); ?>  </div>
</div>          <?php endif; ?>

<?php endwhile;  // 4. On réinitialise à la requête principale (important)

?>
<?php wp_reset_query(); ?>

</div>

Это отлично работает!

...