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()

[php]
get($fieldName, $groupIndex=1, $fieldIndex=1, $readyForEIP=true,$post_id=NULL);
[/php]
カスタムフィールドの値を取得します。

[php]
echo get(‘price’);
[/php]

みたいに使います。

[php]
echo get(‘brand’,8);
[/php]
$groupIndexは、複製したグループの番号です。この場合、複製可能なあるグループの8番目に所属するbrandの値を取得します。

[php]
echo get(‘time’,1,4);
[/php]
とすれば、1番目のグループの、複製可能なtimeというフィールドの4つめの値を持ってきます。

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

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

[/php]

get_image()

[php]
get_image ($fieldName, $groupIndex=1, $fieldIndex=1,$tag_img=1,$post_id=NULL,$override_params=NULL);
[/php]

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

$override_paramsで画像のサイズ等を変更することが出来ます。
[php]
echo get_image(‘photo’,1,1,1,null,null,null,’thumbnail’);
[/php]
また、配列でパラメーターを渡す事で画像の生成ができるようです。が、ちょっと解読できなかったと言うのと、WordPressの元々の機能で十分かなって思います。

get_group()

[php]
get_group($name_group,$post_id=NULL);
[/php]

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-で、日本語化ファイルが配布されています。

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