3638日くらい過ぎています。年で言ったら9.97年くらいです。情報が古くなってる可能性もあるので参考程度に御覧ください。企業サイトなどを作成する場合、トップページに任意の投稿をいくつか載せておきたいこと、ありますよね。?>でも、この方法だと、たとえば「イベント2よりもイベント3のほうがアピールしたいから上にあげたい」なんて場合に、投稿日ソートにセットしておいて、投稿日をいじることで移動させるしかありませんでした。日付をいじって順番を上下させるのはなかなかに気持ちが悪いですので、他の方法を考えてみました。やり方テーマカスタマイザを使用し、投稿IDをカンマ区切りで指定して保存しておく1で保存したデータを元に配列を作成し、WP_Query用のクエリをつくるposts_orderbyにフックして2の配列の順番に出力するようにするということで早速1から料理していきます。カスタマイザ関連の設定はじめに、カスタマイザをいじれるようになっていない場合は、いじれるようにします。以下のように書きます。{require_once('theme_customizer.php');}theme_customizer.phpがカスタマイザを拡張するファイルです。好きな名前でいいですが、次に作成するファイル名と、ここで指定するファイル名はおなじになるようにして下さい。theme_customizer.phpを作成します。10));?>※不要なデフォルト要素の削除という部分は、別に書かなくても大丈夫です。この項目について詳しくはこちらの記事で書いてますので、興味があったらどうぞ。これでテーマのカスタマイズに項目を追加できました。カスタマイザに入って見てみましょう。管理画面から外観→テーマをクリック現在のテーマの情報が書かれているあたりにある「カスタマイズ」をクリックでもOKです。?項目が増えていますか??ちゃんと増えていれば成功です。今作ったこの項目に、表示したい投稿のIDをカンマ区切りで入力し、保存しておきましょう。);といった形で取り出せるようになります。($the_Query->have_posts()):$the_Query->the_post();?>2行目は、先ほど書いた、カスタマイザで保存したオプション値のロードですね。これはただカンマ区切りで入力してあるだけなので、3行目で配列に変換してあげています。次に、ID順でソートするためのフィルターフックを作成します(5-9行目)。今回はこの部分でしか使わないので直接書いてますが,functions.phpに書いておけば何処からでも呼べるようになるので複数個所で指定順表示を行いたい場合はそちらのほうがいいでしょう。あとは普通にWP_Queryを使用して投稿を取得するのと殆ど同じですが、3つポイントがあります。するpost_ids_orderbyについてpost_ids_orderbyについては、以下の記事で紹介されている方法をそのまま利用させて頂きました。詳しい仕組みや何をしているのかが知りたい場合は一度通して読んでみることをおすすめします。WP_Queryで指定する際に、このIDとこのIDとこのIDを読み込んでね、っていう指定です。#投稿&固定ページパラメータこれでカスタマイザ画面で指定したとおりに投稿が表示されるようになるはずです。する理由ですが、これはループで表示する投稿数です。指定した数以下の場合はその数までしか出ませんので、最大数ともとれますね。ここに-1を指定すると、条件にマッチした全ての投稿を取得します。指定してたとすると、カスタマイザでIDを5つ指定しても3つまでしか表示されなくなってしまいます。指定しておくわけです。指定しておけば運用担当者がルールを無視して「5件出しちゃえ!」といった事態を未然に防ぐことができますので、敢えて数値を指定しておくのも1つの方法ですね。因みに、orderをASCにすればカンマ区切りに入力したIDの左から順に、DESCなら右から順に上から表示されるはずです。ここまで設定が終わればひと通り準備は完了ですので、ちゃんと狙ったとおりに表示できるかテストしてみましょう。先ほどと同じ方法でカスタマイザに入って、入力されている投稿IDの並び順を入れ替えたり、他のIDを追加したりしてみましょう。入力してフォームからフォーカスを外す(どこか入力エリア以外をクリックする等)とすぐに横のプレビューエリアに反映されるはずですので、ちゃんと入力した順番に表示されているかいろいろと試してみて下さい。問題がなければ完成です。キャンセル投稿を送信できませんでした。メールアドレスを確認してください。メール送信チェックに失敗しました。このブログではメールでの投稿共有はできません。%d人のブロガーが「いいね」をつけました。