WordPressでカスタム投稿タイプ + カスタムフィールドってのはよくある話だとは思いますけど、管理画面に表示させたいってことが結構あったので、クラスを書いて簡単に扱えるようにしました。
並べ替えにも対応しているので、イベントや、商品などを扱うときに便利かと思います。
つまり、こんな感じです。イベントカレンダーなので、並べ替えができるといろいろ便利だったりします。
コード
コードはこんな感じです。gistに上げてあるので適当に使って下さい。細かい説明をやり出すとかなり長いのでそこら辺は割愛します。日時欄の前にカスタムフィールドを追加します。
無名関数や配列の短縮構文を使っているので、PHP5.4以上で動作します。そこらへん適当に直せばもっと古い環境でも動くと思います。
https://gist.github.com/torounit/64d66203042459a6d25b
第4引数の$is_numをtrueにすると、並べ替え時に文字列ではなく、数字として並び替えます。価格欄などはtrueにしておくと便利かもしれません。
また、取得するカスタムフィールドを表示する前に、フィルターをつけてあります。
それを使うと、
- カスタムフィールドには画像のIDを保存し、wp_get_attachment_imageなどで、画像を表示する
- 日付のフォーマットの変更
- 価格欄に単位をつけて表示
- WordPressという文字列のPをちゃんと大文字にする
等のことができるようになります。
あまり知られてないですけど、管理画面周りでできる事って地味に多いですね。