我试图按照元值对帖子进行分组,但似乎无法弄明白。我的下面的查询只返回"特色"帖子。我想查询返回所有帖子,但有"特色"结果在休息之前。
有什么想法吗?
$args = array(
'posts_per_page' => '20',
'paged' => $current_page,
'meta_query' => array(
array(
'key' => 'tags',
'value' => 'featured',
'compare' => 'like'
)
),
'order_by' => 'date',
'order' => 'DESC'
);
答案 0 :(得分:1)
您的答案是rewind_posts()
。运行您的查询以获取所有帖子,运行您的循环并过滤掉所有不是featured
的帖子,重绕循环,重新运行循环并过滤掉featured
个帖子。
这样的事情会做
$args = [
// Your query arguments to get all postst
];
$q = new WP_Query( $args );
if ( $q->have_posts() ) {
while ( $q->have_posts() ) {
$q->the_post();
if ( get_post_meta( $post->ID, 'tags', true ) == 'featured' ) {
// Run your loop for featured posts
}
}
$q->rewind_posts(); // Rewind the loop to rerun it
while ( $q->have_posts() ) {
$q->the_post();
if ( get_post_meta( $post->ID, 'tags', true ) != 'featured' ) {
// Run your loop for non featured posts
}
}
wp_reset_postdata();
}