按meta_query分组帖子

时间:2015-05-31 16:37:07

标签: wordpress

我试图按照元值对帖子进行分组,但似乎无法弄明白。我的下面的查询只返回"特色"帖子。我想查询返回所有帖子,但有"特色"结果在休息之前。

有什么想法吗?

 $args = array(
    'posts_per_page' => '20',
    'paged' => $current_page,
    'meta_query' => array(
        array(
            'key' => 'tags',
            'value' => 'featured',
            'compare' => 'like'
        )
    ),
    'order_by' => 'date',
    'order' => 'DESC'
 ); 

1 个答案:

答案 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();
}