如何按自定义帖子元字段对自定义帖子类型进行分组?

时间:2020-07-21 19:08:17

标签: wordpress

我有一个称为商品的自定义帖子类型。我正在对其进行修改,以使我可以通过“组名”(merchandise_details_group(这是一个字符串))将类似的产品分组在一起。

数据保存得很好,但是当我尝试将帖子拉回并根据“组名”将它们分组时,什么也没发生。顺序似乎没有改变。

这就是我要提取的数据:

$results = new WP_Query([
    "post_type" => "merchandise",
    "posts_per_page" => -1,
    "tax_query" => [[
            "taxonomy" => "merchcategory",
            "terms" => $atts['merchcategory'],
            "field" => "slug"
    ]],
    "orderby" => [
        "merchandise_details_group" => "asc"
    ]
]);

我如何使其正常工作?

1 个答案:

答案 0 :(得分:1)

看看Orderby Parameters for WP_Query()orderby自变量应为meta_valuemeta_value_numorder自变量应为方向(ASC)。

您还需要提供meta_key参数,这是merchandise_details_group应该使用的参数。

请注意,如果orderby参数是按字母顺序排列的,则应为meta_value;如果是数字格式,则需要meta_value_num,否则将得到一些不希望的结果( 1、10、11、12、2、3、4等)

$query_args = array(
    'post_type'      => 'merchandise',
    'posts_per_page' => -1,
    'orderby'        => 'meta_value', // or 'meta_value_num'
    'order'          => 'ASC',
    'meta_key'       => 'merchandise_details_group',
    'tax_query'      => array(
        array(
            'taxonomy' => 'merchcategory',
            'terms'    => $atts['merchcategory'],
            'field'    => 'slug'
        )
    ),
);

$results = new WP_Query( $query_args );