Wordpressのカスタムフィールドを追加できるプラグインも沢山あるのですが、
コードベースの方がデプロイなんかが楽なのでいつもコードで書いていました。
0から書いていると保存とか色々とメンドーな記述が多くて苦労していたのですが、WordPressのカスタムフィールドをコードベースで追加できるライブラリ「Custom Metaboxes and Fields for WordPress」 | webOpixel の記事で紹介されていた「Custom Metaboxes and Fields for WordPress」を使ってみるとすごく楽にカスタムフィールドを追加する事が出来ました。
ダウンロード
gitHubに公開されいるので、そのままダウンロードも出来ます。WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress · GitHub
これを展開してテーマファイルの中に置けばOK。
せっかくgitHub上にあるので、僕はgit submoduleとして取り込みました。
$ git submodule add https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress {% wordpress dir %}/wp-content/themes/{% theme name %}/metabox $ git submodule init $ git submodule update
[参考]
Git submodule の基礎 - Qiita
git submoduleを今風な感じで削除する - Qiita
使い方
使い方は「 WordPressのカスタムフィールドをコードベースで追加できるライブラリ「Custom Metaboxes and Fields for WordPress」 | webOpixel」の記事に丁寧に書かれていますので、ここを参考にすれば良いかと思います。
わからない部分があればgitHub上のwikiのを見れば捗ります。
僕がよくみてたページは
- Basic Usage
基本的なfunction.phpに記述する方法とフロントエンドでの使い方が書かれています。 - Field Types
追加したいカスタムフィールドのオプションがわからない時に参考になります。
使ってみて
type File
type Fileは通常はファイルのURLが保存されています。
wikiには書かれてないっぽいのですが、save_id
というオプションがあり、wordpressにアップロードされたファイルのID(attachment ID)も合わせて保存するかどうかが選べます。
<?php /* function.php */ array( 'name' => 'Test File', 'desc' => 'Upload an image or enter an URL.', 'id' => $prefix . 'test_image', 'type' => 'file', 'save_id' => true, 'allow' => array( 'url', 'attachment' ) // limit to just attachments with array( 'attachment' ) ),
上の例では$prefix . 'test_image' . '_id'
というフィールド名でファイルのIDが一緒に保存されます。
また、メディアライブラリが起動するのですが、現状ファイルのMIMEタイプを制限したりする機能は無いようなので、仕様を制限させたい場合は出力側でMIMEタイプのチェックをするか、運用ベースでルール化するしか無さそうです。
- Uploading using a "file" field that isn't an image results in error · Issue #113 · WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress · GitHub
- WordPress 3.5の新メディアアップローダーを自作プラグインやテーマに組み込む。 | Firegoby
この辺りを参考にすればファイルを制限させる機能作れそうな気がします。(気が向いたらやってみよう。。。)
group 機能
フィールドを自由に追加できるカスタムフィールドも'type' => 'group'
で簡単に作ることもできるのでとても便利なのですが、
配列形式のテキストとしてDBのフィールドに保存される仕様なので、あまりにも分量が多くなるようなtextareaやwysiwygはグループ化しない方が良さそうな気がします。
試しに使ってみてすごく便利だったので、今後のupdateなどにも期待が高まります。
コードベースでカスタムフィールドも管理したいって人にはオススメできるライブラリだと思いました!!

- 作者: 丸戸史明,深崎暮人
- 出版社/メーカー: KADOKAWA/富士見書房
- 発売日: 2012/07/25
- メディア: 文庫
- この商品を含むブログを見る