タグ: Magic Fields 2

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

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