WordPressの投稿一覧にカスタムフィールドを表示する。

WordPressでカスタム投稿タイプ + カスタムフィールドってのはよくある話だとは思いますけど、管理画面に表示させたいってことが結構あったので、クラスを書いて簡単に扱えるようにしました。

並べ替えにも対応しているので、イベントや、商品などを扱うときに便利かと思います。

2015-02-19

つまり、こんな感じです。イベントカレンダーなので、並べ替えができるといろいろ便利だったりします。

コード

コードはこんな感じです。gistに上げてあるので適当に使って下さい。細かい説明をやり出すとかなり長いのでそこら辺は割愛します。日時欄の前にカスタムフィールドを追加します。

無名関数や配列の短縮構文を使っているので、PHP5.4以上で動作します。そこらへん適当に直せばもっと古い環境でも動くと思います。

第4引数の$is_numをtrueにすると、並べ替え時に文字列ではなく、数字として並び替えます。価格欄などはtrueにしておくと便利かもしれません。

また、取得するカスタムフィールドを表示する前に、フィルターをつけてあります。

それを使うと、

  • カスタムフィールドには画像のIDを保存し、wp_get_attachment_imageなどで、画像を表示する
  • 日付のフォーマットの変更
  • 価格欄に単位をつけて表示
  • WordPressという文字列のPをちゃんと大文字にする

等のことができるようになります。

あまり知られてないですけど、管理画面周りでできる事って地味に多いですね。