0

マジックフィールドを使用していてcollection、というフィールドで呼び出されるカスタム投稿タイプを定義しsortました。ここで、カスタム投稿を並べ替える番号を入力します。

私のWP_Query引数は単純です:

'post_type' => 'collection',
'meta_key' => 'sort',
'order_by' => 'meta_value',
'order' => 'ASC'

これは、$ query結果で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

4

1 に答える 1

1
'post_type' => 'collection',
'meta_key' => 'sort',
'orderby' => 'meta_value',
'order' => 'ASC'

order_by = orderby

また、マジックフィールドではなくカスタムフィールドと呼ばれます

http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

于 2012-05-16T13:23:01.627 に答える