通过post_meta和(作者)user_meta自定义WP_Query顺序

时间:2015-05-10 09:20:58

标签: php wordpress custom-post-type wp-query

我遇到了一个在Google和其他地方找不到的问题。 把问题放在上下文中。 我正在制作一个wordpress网站,用户可以将他们的导师列表用于提供教程,我正在实施他们自己和听力的导师评估系统。 所以我有 tutor_listing 帖子类型,每个 tutor_listing 都有一个' post_score '元值,每个导师(放置他的教程的用户)都有< em> user_meta 值称为“ user_points ”。

所以我需要一个 WP_Query ,它将从数据库中获取所有已发布的tutor_listing但排序( post_score + user_points )。只是强调' post_score '是 post_type tutor_listing user_points post_meta >'是该帖子作者的 user_meta tutor_listing )。 此外,我需要在循环中显示该值。

我可以通过

获取所有tutor_listing
$args = array(
    'post_type' => 'job_listing',
    'post_status' => 'publish'
);
$query = new WP_Query( $args );

我可以从自定义wordpress sql查询中得到结果:

SELECT p1.ID, p1.post_author, p1.post_title, p1.post_date, (um1.meta_value + pm1.meta_value) AS total_score
FROM $wpdb->posts p1
    JOIN $wpdb->users u1 ON (p1.post_author = u1.ID)
    JOIN $wpdb->usermeta um1 ON (um1.user_id = u1.ID)
    JOIN $wpdb->postmeta pm1 ON (pm1.post_id = p1.ID)
WHERE p1.post_type = 'tutor_listing'
AND p1.post_status = 'publish'
AND um1.meta_key = 'user_points'
AND pm1.meta_key = 'post_score'";

WP_Query能提供这样的功能吗? 我需要WP_Query来使用它的所有额外功能,如分页等。 或者有一种方法可以将我的自定义sql的所有结果都提供给WP_Query对象吗?

谢谢

0 个答案:

没有答案