嗨,我是wordpress开发的新手,但对编程并不陌生。
我的问题是,我试图在WP_Query
并按自定义元键对其排序,我的查询如下所示
$mp_wp_query = new WP_Query(
array(
\'posts_per_page\' => 10,
\'order_by\' => \'meta_value_num\',
\'order\' => \'DESC\',
\'post_status\' => \'publish\',
\'post_type\' => \'tribe_events\',
\'meta_key\' => \'wpb_post_views_count\',
\'post_parent\' => \'0\'
)
);
echo "Last SQL-Query: {$mp_wp_query->request}";
这将生成一个SQL查询,如下所示SELECT SQL_CALC_FOUND_ROWS DISTINCT wp_posts.*, MIN(wp_postmeta.meta_value) as EventStartDate, MIN(tribe_event_end_date.meta_value) as EventEndDate FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) LEFT JOIN wp_postmeta as tribe_event_end_date ON ( wp_posts.ID = tribe_event_end_date.post_id AND tribe_event_end_date.meta_key = \'_EventEndDate\' ) WHERE 1=1 AND wp_posts.post_parent = 0 AND ( wp_postmeta.meta_key = \'wpb_post_views_count\' AND ( mt1.meta_key = \'_EventStartDate\' ) ) AND wp_posts.post_type = \'tribe_events\' AND ((wp_posts.post_status = \'publish\')) AND (wp_postmeta.meta_value >= \'2018-05-22 20:15:06\' OR (wp_postmeta.meta_value <= \'2018-05-22 20:15:06\' AND tribe_event_end_date.meta_value >= \'2018-05-22 20:15:06\' )) GROUP BY wp_posts.ID ORDER BY EventStartDate DESC, wp_posts.post_date DESC LIMIT 0, 10
ORDER BY EventStartDate
自定义帖子类型能否以某种方式指定其排序方式,而忽略我的排序?我已经查看了自定义帖子类型的代码register_post_type
被调用,并且args无法看到任何提示它所做的操作。