詳細仕様は決まっていないのですが、作りたいのは投稿画面に決まったフォーマットのデータを入力させるプラグイン。カスタムフィールドを使えば投稿画面に付加情報を入力することは可能ですが、毎回決まったフォーマットで入力させたい。
このような用途に使える良質なプラグインにCustom Field Templateがありますが、より厳格に入力フォーマットを限定し、さらに2次利用できればなぁと思っているので、自作してみることにします。
と、その前に便利なジェネレータを発見しましたのでご紹介します。
Fun With Plugins
ウィザード形式でプラグイン名など必要事項を入力していくだけで、WordPressのプラグインとしての骨格を作ってくれます。あとは関数などを追加していくだけ。
さて、上述のCustom Field Templateのソースを見ていくと、管理画面に任意の入力フォームを追加しているのはこの2行のようです。
1 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のページをみるとそれぞれの引数の意味が分かります。
1 | <?php add_meta_box( 'id' , 'title' , 'callback' , 'page' , 'context' , 'priority' ); ?> |
idが管理画面に出現する入力欄のdivのid属性値。他とかぶらないようにすればよいでしょう。
titleが管理画面に出現する入力欄のタイトル。最初からあるものだと「抜粋」とか「カスタムフィールド」とか表示されている部分です。
callbackがコールバック関数名。ここで指定した関数が呼ばれると、なるほど。
pageはどの画面に追加するのかを指定。投稿ならpost、ページならpage、リンクならを入力。そのままですね。
contextとpriorityはCodexを読んでもよく分かりませんが、無くても通るようなので無視。
と、管理画面に何かを追加できそうなことは分かったので、現時点でいったんプラグインの形にしてみました。