WordPress-запрос показывает только первый элемент подповторного - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь перебрать все расширенные объекты записей настраиваемых полей с другой страницы WordPress.Цикл выводит только первый постобъект (событие).

Может быть, я не правильно использую reset_postdata?Есть идеи, что я могу делать не так?

Благодарен за любые предложения.

<?php $your_query = new WP_Query( 'pagename=events' );
while ( $your_query->have_posts() ) : $your_query->the_post(); ?>
<?php if( have_rows('events') ): ?>
    <?php while ( have_rows('events') ) : the_row(); ?>
        <?php if( get_row_layout() == 'single-event' ): ?>

            <?php $post_object = get_sub_field('event');
            if( $post_object ): 
                $post = $post_object;
                setup_postdata( $post ); ?>
                    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                <?php wp_reset_postdata(); ?>
            <?php endif; ?>

        <?php endif; ?>
    <?php endwhile; ?>
<?php endif; ?>

1 Ответ

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

Я предлагаю изменить вашу первую строку следующим образом ..

<?php $your_query = new WP_Query( 
                          array(
                           'posts_per_page'   => -1,
                           'post_type' => 'events',
                           ));

и, если вы хотите поместить wp_reset_postdata (), следует поместить из цикла while.

<?php while ( $your_query->have_posts() ) : $your_query->the_post(); ?>
<?php if( have_rows('events') ): ?>
<?php while ( have_rows('events') ) : the_row(); ?>
    <?php if( get_row_layout() == 'single-event' ): ?>
        <?php $post_object = get_sub_field('event');
          if( $post_object ): 
            setup_postdata( $GLOBALS['post'] =& $post_object );
          ?>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <?php endif; ?>

    <?php endif; ?>
<?php endwhile; wp_reset_postdata(); ?>
<?php endif; ?>
<?php endwhile; ?>
...