按`meta_key`排序帖子,不显示没有`meta_key`的帖子

时间:2016-04-03 作者:mixer

我正在使用此查询orderbymeta_key 用于显示帖子。如果其中一个帖子没有vip_row meta,因此未显示;如果其中一个帖子没有vip_row 要显示的元,但在最后一行?

 $args = array(
            \'post_type\' => \'my_product\',
            \'post_status\' => \'publish\',
            \'tax_query\' => array(
                array(
                  \'taxonomy\' => \'my_product_cat\',
                  \'field\' => \'slug\',
                  \'terms\' => array($category->slug)
                )
            ),
            \'meta_key\' => \'vip_row\',
            \'orderby\' => \'meta_value_num\'
        );

        $query = new WP_Query($args);

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您可以使用meta_query 它获取键存在或不存在的帖子,然后对元键进行排序,并对具有相同值或没有键的帖子进行二级排序:

$args = array(
    \'post_type\' => \'my_product\'
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'my_product_cat\',
            \'field\' => \'slug\',
            \'terms\' => array( $category->slug )
        )
    ),
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        array(
            \'key\' => \'vip_row\',
            \'compare\' => \'NOT EXISTS\',
        ),
        array(
            \'key\' => \'vip_row\'
            \'compare\' => \'EXISTS\',
        )
    ),
    \'orderby\' => array(
        \'meta_value_num\' => \'DESC\',
        \'date\' => \'ASC\',
    )
);

$query = new WP_Query($args);

相关推荐

Wp-query and column blocks

也许这要求太高了,但新的块提供了一种简单的方法来添加响应良好的列。ie您只需将图像拇指放入列块中,它们就可以在移动和桌面上完美工作。有没有办法让WP查询输出the_post_thumbnail 如我在3列行中的参数(12篇x类已发布帖子)所述?