私のテーマのバックオフィスでは、ユーザーはフロントページに表示する投稿を選択できます。また、 選択した投稿を表示する順序を にすることもできます。
私はこのようにしてみました:
$aPostsIDs = array(1,3,2); // Note the 3 should appear before the 2
query_posts(array('post_type' => 'page',
'post__in' => $aPostsIDs,
'order_by' => 'FIELD(ID, '.implode(',',$aPostsIDs).')'));
しかし、予想どおりには機能しません。正しいやり方は コーデックスによれば です。
add_filter('posts_orderby', 'edit_posts_orderby');
function edit_posts_orderby($orderby_statement) {
global $aPostsIDs;
$orderby_statement = 'FIELD(ID, '.implode(',',$aPostsIDs).')';
return $orderby_statement;
}
しかし、それでもまだうまくいきません!投稿は、指定された順序(1、3、2)ではなくID(1、2、3)で並べられています。
どこを見ればいいですか?ありがとう
WordPress 3.5以降では、orderby
パラメータによって、post__in
値をpost__in
パラメータの順序で並べ替えることができます。
待つことや3.5+を要求することは理想的ではないかもしれませんが、これはほとんど確実にあなたがしたいことをするための最善かつ最も簡単な方法になるでしょう。
これが 関連のtracチケットです 詳細を知りたい場合は/ /.