我有自定义帖子类型"事件"日期为自定义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;页面现在按预期排序,当我通过点击其中一个帖子的永久链接进入单个页面时,它会显示错误的帖子内容,然后显示其下方的其他帖子。它好像在内容模板中执行查询一样。
有没有人有任何想法?
答案 0 :(得分:0)
您可以为页面使用不同的查询参数。尝试使用条件标记https://codex.wordpress.org/Conditional_Tags#Single_Post
答案 1 :(得分:0)
我认为您需要在自定义查询后调用wp_reset_postdata()
以重置各种全局发布变量。
在您的情况下,您需要在自定义循环后立即添加<?php wp_reset_postdata(); ?>
(即在endwhile
语句之后)。