2012-05-16 84 views
0

我使用魔術字段並定義了一個名爲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

回答

1
'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

+0

啊謝謝你這麼多,你是對的,'orderby'是正確的。只是爲了澄清,我的意思是像[wordpress插件](http://wordpress.org/extend/plugins/magic-fields/)中的'魔術領域'此外,只是一個筆記,因爲我的'sort'字段是數字,我還需要使用''orderby'=>'meta_value_num'',現在一切正常。 – waffl

相關問題