WordPressでカスタムフィールドを使いやすくするプラグイン「Magic Fields 2」

投稿画面で、カスタムフィールド用の入力欄をこさえるプラグインはCustom Field Templateとかが有名ですよね。作者も日本人なので、使い方の情報とかも整備されているので、とても便利に使わせてもらっています。

ただ、今回はそれとはちょっと毛色の違うプラグインです。

Magic Fields 2

Custom Field Templateとはかなり毛色の違うプラグインです。Magic Fields 2の方はとにかく多機能です。主な機能としては、

  • フィールドのグループ化
  • 投稿時に複製可能なフィールド、グループの作成
  • 入力必須なフィールドの作成
  • テキストボックス、マークダウン、ドロップダウンメニュー、画像、オーディオ、ファイル…等のいろんな種類のフィールドを作成可能
  • 日付入力支援や、フィールドの説明文を管理画面でツールチップで表示

等々、便利機能が満載です。

基本的にはシンプルにWordPressの機能を活用して+αとしてカスタムフィールドを使うときはCustom Field Template、入力欄をガッツリカスタマイズするようなものはMagic Fields 2という使い分けをしています。
カタログのようなサイトとか、ライブハウスのスケジュールとか、かなりガッツリフォーマットが決まっているようなサイトには便利だなと思ってます。

ただ、カスタムフィールドの複製機能を使ったりした場合、順番通りにカスタムフィールドに格納されるとは限らなかったり、画像の処理などに独自の関数を用いていたり、ちょっとWordPressの標準のテンプレートタグで扱おうとすると結構痛い目を見ます。
関数がかなり強力なんで、Wikiもあるのですが、英語かスペイン語で書かれてるので、めちゃくちゃハードルが高いです。

なので、ちょっとしたスニペッドをいくつか。

get()

カスタムフィールドの値を取得します。

みたいに使います。

$groupIndexは、複製したグループの番号です。この場合、複製可能なあるグループの8番目に所属するbrandの値を取得します。

とすれば、1番目のグループの、複製可能なtimeというフィールドの4つめの値を持ってきます。

$readyForEIPは表示されてる画面で直接値の修正が出来る機能を有効にするか、しないかみたいなもののようですが、動作が確認できてません。

また$post_idで記事のIDを指定することが出来ます。ループ外で使うときなどは有効かも。

get_image()

$fieldName, $groupIndex, $fieldIndex, $post_idはget()と一緒。$tag_imgがtrueならimgタグ、falseなら、画像のURLが返却されます。

$override_paramsで画像のサイズ等を変更することが出来ます。

また、配列でパラメーターを渡す事で画像の生成ができるようです。が、ちょっと解読できなかったと言うのと、WordPressの元々の機能で十分かなって思います。

get_group()

get_gruoupは一つ一つキーを持ってくるgetではなく、そのグループのキー全てを配列で持ってきます。

[plain]
Array
(
[1] => Array
(
[marca] => Array
(
[1] => una marca
)

[foto] => Array
(
[1] => Array
(
[original] => http://mf2.local/wp-content/files_mf/1307562748IrinaShaykWallpaper4.jpg
[thumb] => http://mf2.local/wp-content/files_mf/1307562748IrinaShaykWallpaper4.jpg
)

)

)

[2] => Array
(
[marca] => Array
(
[1] => marca dos
)

[foto] => Array
(
[1] => Array
(
[original] => http://mf2.local/wp-content/files_mf/1307560459IrinaSheik_002014.jpg
[thumb] => http://mf2.local/wp-content/files_mf/1307560459IrinaSheik_002014.jpg
)

[2] => Array
(
[original] => http://mf2.local/wp-content/uploads/2011/06/IMG_0001.jpg
[thumb] => http://mf2.local/wp-content/files_mf/cache/th_cbd8d15a6177234f018d40337840663e_IMG_0001.jpg
)

)

)

)

[/plain]

こんな感じでグループ全てのキーを一度に持ってくる事が出来ます。
複製可能なグループの場合、戻り値が配列になっているので、foreach等で取り出したりしやすいです。

また、カスタムフィールドをカスタマイズするプラグイン「MagicFields2」-CREATORISH-で、日本語化ファイルが配布されています。

結構手軽に大規模な管理画面のカスタマイズが出来てしまうので、なかなか便利。