2016-11-15 65 views
0

我有一个工作正常的WP_Query,但是我现在需要修改它,以便根据usermeta中的值进行排序(在这种情况下,用户具有'jobs_order'的meta_key)。这是一个数字值,这个想法是我根据这个命令发布帖子,例如一个值为0的用户将在下一个用户拥有1之前看到他们的帖子。WP_Query order by usermeta value

我已经迷上了它:

add_filter('posts_join', 'wpa_66507_join'); 

function wpa_66507_join($join) { 
    if (is_page('browse-jobs') && is_main_query()) { 

     global $wpdb; 

     // join the usermeta table so we can sort by meta key 
     $join .= " LEFT JOIN {$wpdb->usermeta} AS um ON (um.user_id = {$wpdb->posts}.post_author AND um.meta_key = 'jobs_order')"; 
    } 
    return $join; 
} 

而WP_Query被设置为由um.meta_value_num ASC命令。然而,这不起作用,无论我是否注释加入声明,这些帖子仍保持相同的顺序。对此感到非常感激。

+0

你好,据我所知,你必须做一个邮政分拣顺序吧? –

+0

嗨,是的,这是正确的 –

回答

0
$args = array(
    'post_type' => 'my_custom_post_type', 
    'meta_key' => 'age', 
    'orderby' => 'meta_value_num', 
    'order'  => 'ASC', 
    'meta_query' => array(
     array(
      'key'  => 'age', 
      'value' => array(3, 4), 
      'compare' => 'IN', 
     ), 
    ), 
); 
$query = new WP_Query($args); 
+0

您可以根据需要修改上述代码。 –

+0

我可以订购的帖子很好,我发布的问题是由作者/用户 –

+0

的meta_value订购什么是您当前的输出? –