Несколько пользовательских пост-запросов не работают - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь отобразить один и тот же пользовательский запрос несколько раз на одной странице.Между публикациями будет вызываться другая пользовательская таксономия, основанная на одном пользовательском типе сообщения.Когда я пытаюсь вызвать тот же пользовательский пост во второй раз, он не работает.Но showposts = 2 работает, но мне нужно отобразить один пост для одного поста запроса.Вот коды:

        <div class="col-sm-6">
            <?php

                $querevent = new WP_Query( array(
                'post_type' => 'tatstory',          // name of post type.
                'showposts' => 1,
            ) );

            if ( $querevent->have_posts() ):
                  // Yep, we have posts, so let's loop through them.
                  while ( $querevent->have_posts() ) : $querevent->the_post();  ?>

                <?php if ( has_term('event','eventname' ) && has_term('featured-in-story-page','fetstory' )) { ?>
                        <div class="listing_inner">
                            <div class="listing_img">
                                <?php the_post_thumbnail( 'shop-story', array( 'class' => 'img-fluid' ) ); ?>
                            </div>
                            <div class="listing_texts">
                                <p class="event yellow">Event</p>
                                <h2><?php the_title(); ?></h2>
                            </div>
                        </div>
                <?php                                                                                       
                }  ?>


            <?php endwhile;

        else :
          // No, we don't have any posts, so maybe we display a nice message
          echo "<p class='no-posts'>" . __( "Sorry, there are no posts at this time." ) . "</p>";
        endif; 
            ?>

        </div>


        <div class="col-sm-6">
             <?php

                $quernews = new WP_Query( array(
                'post_type' => 'tatstory',          // name of post type.
                'showposts' => 1,
            ) );

            if ( $quernews->have_posts() ):
                  // Yep, we have posts, so let's loop through them.
                  while ( $quernews->have_posts() ) : $quernews->the_post();  ?>
               <?php if ( has_term('news','eventname' ) && has_term('featured-in-story-page','fetstory' )) { ?>   

            <div class="listing_inner">
                <div class="listing_img">
                    <?php the_post_thumbnail( 'shop-newscat', array( 'class' => 'img-fluid' ) ); ?>
                </div>
                <div class="listing_texts_right">
                    <p class="event blue">News</p>
                    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                </div>
            </div>
             <?php }  ?>
            <?php endwhile;
            wp_reset_postdata(); 
        else :
          // No, we don't have any posts, so maybe we display a nice message
          echo "<p class='no-posts'>" . __( "Sorry, there are no posts at this time." ) . "</p>";
        endif; 

            ?>

1 Ответ

0 голосов
/ 04 июня 2018

Сначала я бы изменил ваш WP_Query, например:

$query = new WP_Query( array(
    'post_type' => 'tatstory',
    'posts_per_page' => '1',
    'tax_query' => array(
        array (
            'taxonomy' => 'eventname',
            'field' => 'slug',
            'terms' => 'news',
        ),
        array (
            'taxonomy' => 'fetstory',
            'field' => 'slug',
            'terms' => 'featured-in-story-page',
        )
    ),
) );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // display content
    }
} else {
    // display when no posts found
}

wp_reset_postdata();     // Restore original Post Data

Запрос будет собирать только сообщения, для которых заданы правильные условия.

Восстановление исходных данных поста в конце (wp_reset_postdata()) может помочь вам снова вызвать новый WP_Query.Но я не знаю ни одной причины, почему вы не можете вызвать ее дважды в одном шаблоне страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...