カテゴリー別アーカイブ: WordPressプラグイン開発

[WordPress] プラグインを作ろう(2) 独自のカスタムフィールドを追加する

詳細仕様は決まっていないのですが、作りたいのは投稿画面に決まったフォーマットのデータを入力させるプラグイン。カスタムフィールドを使えば投稿画面に付加情報を入力することは可能ですが、毎回決まったフォーマットで入力させたい。

このような用途に使える良質なプラグインにCustom Field Templateがありますが、より厳格に入力フォーマットを限定し、さらに2次利用できればなぁと思っているので、自作してみることにします。

と、その前に便利なジェネレータを発見しましたのでご紹介します。

Fun With Plugins
ウィザード形式でプラグイン名など必要事項を入力していくだけで、WordPressのプラグインとしての骨格を作ってくれます。あとは関数などを追加していくだけ。

さて、上述のCustom Field Templateのソースを見ていくと、管理画面に任意の入力フォームを追加しているのはこの2行のようです。

require_once(ABSPATH . 'wp-admin/includes/template.php');
add_meta_box('cftdiv', __('Custom Field Template', 'custom-field-template'), array(&$this, 'insert_custom_field'), 'post', 'normal', 'core');

1行目は、2行目で使用しているadd_meta_box()関数を定義しているファイルなので読み込みは必須のようです。

2行目のadd_meta_box()が管理画面に任意の入力欄を追加しているみたい。Codexのadd_meta_boxのページをみるとそれぞれの引数の意味が分かります。

<?php add_meta_box('id', 'title', 'callback', 'page', 'context', 'priority'); ?>

idが管理画面に出現する入力欄のdivのid属性値。他とかぶらないようにすればよいでしょう。
titleが管理画面に出現する入力欄のタイトル。最初からあるものだと「抜粋」とか「カスタムフィールド」とか表示されている部分です。
callbackがコールバック関数名。ここで指定した関数が呼ばれると、なるほど。
pageはどの画面に追加するのかを指定。投稿ならpost、ページならpage、リンクならを入力。そのままですね。
contextpriorityはCodexを読んでもよく分かりませんが、無くても通るようなので無視。

と、管理画面に何かを追加できそうなことは分かったので、現時点でいったんプラグインの形にしてみました。

続きを読む [WordPress] プラグインを作ろう(2) 独自のカスタムフィールドを追加する

[WordPress] プラグインを作ろう(1) 参考サイトを探そう

WordPressであったらいいなと思うプラグインが世の中に無い様なので、作ることはできないかと思い立つ。とりあえず参考になりそうなページを漁ってみたのでメモ程度に。

プラグインの作成 – WordPress Codex 日本語版
言わずと知れた本家Codex記事

Create a Custom WordPress Plugin From Scratch
段階を追って詳細に書かれているみたい

WordPress プラグイン作成時のノウハウ – 前編 –
日本語の情報の中では分かりやすそう

さて、順番に読んで行こう。