2013-03-12 4 views
1

У меня есть сообщение с тремя мета-полями.Wordpress query - Order by meta-field value

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' 
     ) 
     ); 
    

Где раз это имя metafield.The выше кода ничего не возвращающей.

ответ

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

Еще не получились ... я думаю, что проблема находится в мета-запросе –

+0

Вы получаете результат, 'get_post_meta ($ ID,«раз») '? –

+0

Удаление кода из 'orderby' в 'posts_per_page' и добавление массива 'get_post_meta' => ($ id, 'times') вместо этого возвращает результат. –