【发布时间】:2016-11-15 09:09:51
【问题描述】:
我有一个工作正常的 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 设置为 orderby um.meta_value_num ASC。但是,这不起作用,无论我是否注释掉加入声明,帖子都保持相同的顺序。非常感谢您对此的任何想法。
【问题讨论】:
-
您好,据我了解,您必须进行帖子排序,对吗?
-
嗨,没错