Wordpress - Magic Fields - 使用WP_Query排序自定义魔术字段
问题描述:
我使用魔术字段并定义了一个名为collection
的自定义帖子类型,其字段名为sort
,其中我输入了一个数字,我想按自定义帖子进行排序。Wordpress - Magic Fields - 使用WP_Query排序自定义魔术字段
我WP_Query论点很简单:
'post_type' => 'collection',
'meta_key' => 'sort',
'order_by' => 'meta_value',
'order' => 'ASC'
,其在使用的print_r对$查询结果显示下面的MySQL语句:
SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND wp_posts.post_type = 'collection' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND (wp_postmeta.meta_key = 'sort') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date ASC LIMIT 0, 10
所以我很困惑,为什么产生的MySQL仍然包含ORDER BY wp_posts.post_date
当我明确说明它应该排序wp_postmeta.meta_key = 'sort'
及其相应的meta_value
?
答
'post_type' => 'collection',
'meta_key' => 'sort',
'orderby' => 'meta_value',
'order' => 'ASC'
ORDER_BY =排序依据
而且它不是所谓的魔法领域,但自定义字段
http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters
啊谢谢你这么多,你是对的,'orderby'是正确的。只是为了澄清,我的意思是像[wordpress插件](http://wordpress.org/extend/plugins/magic-fields/)中的'魔术领域'此外,只是一个笔记,因为我的'sort'字段是数字,我还需要使用''orderby'=>'meta_value_num'',现在一切正常。 – waffl