0

我试图通过高 int val(meta_key) 显示产品,但代码并排添加具有相同 int 值的帖子。

$args = array(
'posts_per_page' => $limit, 
'orderby'     => 'meta_value',
'meta_key' => 'wpb_post_views_count',
'order' => 'ASC',
'post_type' => 'products',
'post_status' => 'publish',
);

$query = new WP_Query( $args );

foreach ($query->posts as $key => $post) {
# code here
}
4

1 回答 1

0

'orderby' => 'meta_value_num'

请注意,查询中还必须存在“meta_key=keyname”。另请注意,排序将按字母顺序排列,这对于字符串(即单词)很好,但对于数字(例如 1、3、34、4、56、6 等,而不是 1、3、4、6、 34、56,正如您自然所期望的那样)。使用 'meta_value_num' 代替数值。如果要将元值转换为特定类型,也可以指定“meta_type”。可能的值是 'NUMERIC'、'BINARY'、'CHAR'、'DATE'、'DATETIME'、'DECIMAL'、'SIGNED'、'TIME'、'UNSIGNED',与 '$meta_query' 中的相同。使用 'meta_type' 时,您也可以相应地使用 meta_value_*。例如,当使用 DATETIME 作为 'meta_type' 时,您可以使用 'meta_value_datetime' 来定义订单结构。

尝试:

$args = array(
    'posts_per_page' => $limit, 
    'orderby' => 'meta_value_num',
    'meta_key' => 'wpb_post_views_count',
    'order' => 'ASC',
    'post_type' => 'products',
    'post_status' => 'publish',
);

更多信息:Orderby 参数

于 2017-01-10T11:01:07.700 回答