我有一个正常运行的WP_Query,但是我现在需要修改它以按usermeta中的值排序(在这种情况下,用户有一个meta_key" jobs_order')。这是一个数值,这个想法是我根据这个命令发布帖子,例如,值为0的用户将在下一个拥有1的用户之前看到他们的帖子。
我已经如此迷恋它:
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被设置为order by um.meta_value_num ASC。但是这不起作用,无论我是否注释掉加入声明,帖子都保持相同的顺序。对此有任何想法都非常感激。
答案 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 );