投稿画面で、カスタムフィールド用の入力欄をこさえるプラグインは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-で、日本語化ファイルが配布されています。
結構手軽に大規模な管理画面のカスタマイズが出来てしまうので、なかなか便利。