2013-03-12 68 views
1

我有一个贴有三个元字段的帖子。Wordpress查询 - 按元字段值排序

add_post_meta($my_post, 'times', $times); 

,我想他们中的一个的元字段值来查询该类别和排序的职位。 我现在使用的参数是:

 $args=array(
     'post_type' => 'post', 
     'category_name' => 'players', 
     'order' => 'DESC', 
     'orderby' => 'meta_value_num', 
     'meta_key' => 'times', 
     'meta_query' => array(
     array(
      'key' => 'times', 
      'value' => 0, 
      'compare' => '>=', 
     ), 
     'posts_per_page'=> '8' 
     ) 
     ); 
    

其中times是metafield的名称。上面的代码不返回任何内容。

回答

1

您有'posts_per_page'=> '8'在您的meta_query参数内。

改变你的代码如下:

$args=array(
    'post_type' => 'post', 
    'category_name' => 'players', 
    'order' => 'DESC', 
    'orderby' => 'meta_value_num', 
    'meta_key' => 'times', 
    'meta_query' => array(
     array(
      'key' => 'times', 
      'value' => 0, 
      'compare' => '>=', 
     ) 
    ), 
    'posts_per_page'=> '8' 
); 
+0

仍然没有工作...我认为这个问题是在元查询 – 2013-03-12 13:17:29

+0

你被'get_post_meta结果($ ID,“时代” )'? – 2013-03-12 13:27:03

+0

将代码从'orderby'移除到'posts_per_page'并添加'get_post_meta'=>数组($ id,'times')代替返回结果。 – 2013-03-12 13:44:40