自定义WP-Query显示"内容"中的所有帖子页

时间:2017-04-24 19:07:05

标签: php wordpress

我有自定义帖子类型"事件"日期为自定义post_meta。使用模板的内置循环会很好,但我需要按日期排序,我创建了一个自定义查询:

<?php // the query
    $args = array(
        'post_type'         => 'event' ,
        'orderby'           => 'meta_value',
        'meta_query'        => array(
            array(
                'key'       => 'event_start_date',
                'type'      => 'DATE'
            )
        ),
        'posts_per_page'    =>  20, 
        'order'             =>  'DESC'
        );

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

        <!-- the loop -->
        <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>

            <?php get_template_part( 'loop-templates/content', 'event' ); ?>

            <?php the_post_navigation( array(
                'prev_text'                  => __( '<span class="nav-prev">Prev article: %title</span>' ),
                'next_text'                  => __( '<span class="nav-next">Next article: %title</span>' ),
                'in_same_term'               => true,
                'taxonomy'                   => __( 'category' ),
                'screen_reader_text' => __( 'Continue Reading' ),
            ) ); ?>

            <?php
            // If comments are open or we have at least one comment, load up the comment template
            if ( comments_open() || get_comments_number() ) :
                comments_template();
            endif;
            ?>

        <?php endwhile; // end of the loop. ?>

我遇到的问题是&#34;存档&#34;页面现在按预期排序,当我通过点击其中一个帖子的永久链接进入单个页面时,它会显示错误的帖子内容,然后显示其下方的其他帖子。它好像在内容模板中执行查询一样。

有没有人有任何想法?

2 个答案:

答案 0 :(得分:0)

您可以为页面使用不同的查询参数。尝试使用条件标记https://codex.wordpress.org/Conditional_Tags#Single_Post

答案 1 :(得分:0)

我认为您需要在自定义查询后调用wp_reset_postdata()以重置各种全局发布变量。

在您的情况下,您需要在自定义循环后立即添加<?php wp_reset_postdata(); ?>(即在endwhile语句之后)。