1週間ほど前に、急にWordpressのプラグインが作りたくなって、2日間ほど気合を入れて実装した。作成手順編では、プラグイン作成の初歩から、Wordpress.orgへの申請までの手順を説明する。
プラグイン作成のお作法を調べるのに少々時間がかかる
ソースの実装自体は、ただのPHPなのでそれほど難しくはない
多言語対応するための情報収集&実装 にはちょっと時間が必要
申請のために必要なWordpress プラグイン書式に則ったReadme.txtを作るのがだるい
WordPress.orgのユーザー登録をする
プラグインの申請を出す。
申請後、担当者(Wordpress.orgの中の人(外人))と英語でやりとりするのは、意外にためなる
申請通過
現時点での雑感
これらを順を追って大雑把にまとめておく。
プラグイン作成のお作法を調べるのに少々時間がかかる
プラグインがどういう仕組みで動いているか、普通の人は知るはずもないので、これを調べなきゃなりません。ぐぐってみましたが、素晴らしくピンポイントで情報を提供してくれているようなサイトはなく、いくつかのサイトの情報を閲覧する。加えて、既に公開されている簡単そうなプラグインのソースを追っかけてみる。で、なんとか理解できたという感じです。
詳細に書くのはちょっと面倒なので、ざっくりとだけ手順を記載しておきます。
- プラグインの名前を決める
私が公開予定のプラグイン名が text-cache-controller なので、その過程で話を進めます。
- プラグインの設定画面を作る
WordPressのルートフォルダ/wp-content/plugins/ フォルダ内に
プラグイン名でフォルダを作り、その中に プラグイン名.php (text-cache-controller.php) を作る。
- プラグイン設定画面のCSSを作る
プラグイン名.css (text-cache-controller.css) を作る。
- プラグイン名.php内にクラスを定義し、必須となるfunctionを定義
◇クラス名には特に決まりはないと思います。
◇クラスのコンストラクタで、Wordpressのダッシュボードの左側に表示されるメニューに追加するためのfunctionを定義する。
◇add_actionというのはWP側で定義されている関数みたいなので、こいつを第一引数 “admin_menu” で呼び出して、第二引数に配列で、$thisとメニュー定義の詳細を決定するfunctionを渡してやる。
◇指定したfunction内に これまたWP側で定義された add_submenu_pageを呼び出してやる。
第一引数の “options-general.php” は メニューのどの位置に自分のプラグインの設定リンクを追加するかという定義で、後ろから2つ目の配列引数で、$thisと自分のプラグインの設定画面のHTMLを描画するためのfunctionを設定してやる。
[php]
class TextCacheControllerAdmin {
function __construct() {
add_action(“admin_menu”, array($this, “add_pages”));
}
function add_pages() {
add_submenu_page(“options-general.php”,”Text Cache Controller Settings”
,”Text Cache Controller”, “level_8″, __FILE__, array($this,”showOptions”), “”, 26);
}
function showOptions() {
ここに、ガリガリと自分のプラグインの設定画面のHTML出力を記述します。
}
}
$tccadmin = new TextCacheControllerAdmin();
[/php]
- プラグインが利用するCSSとJSを読み込むための定義を追加
これは、上記のクラス外に以下のような感じで、追加してあげればOKです。
ここでも WP側で用意されている function add_acctionを利用します。
CSSを読み込むためのfunctionとJSを読み込むためのfunctionを用意し、add_acctionの引数に与えればOK。
add_action(‘admin_enqueue_scripts’, ‘適当なfunction名’);
[php]
function tcc_styles() {
wp_register_style( ‘custom_wp_admin_css’, plugins_url(‘text-cache-controller/text-cache-controller.css’));
wp_enqueue_style( ‘custom_wp_admin_css’ );
}
add_action(‘admin_enqueue_scripts’, ‘tcc_styles’);
function tcc_scripts() {
wp_enqueue_script( ‘jquery’ );
}
add_action(‘wp_enqueue_scripts’,’tcc_scripts’);
[/php]
- プラグイン設定画面 出力用functionをひたすら実装
自分のプラグインの設定画面に必要なHTMLをひたすら実装します。
このfunction内で、設定値を表示する処理、設定値を保存する処理、その他もろもろの処理をごちゃごちゃ書いていけばOKです。
何点かポイント
・自分のプラグインの設定画面が呼ばれているのかどうか判定
[php]
wp_nonce_field(“tcc_options”);
と
if ( isset($_POST[“tcc_options”])) {
check_admin_referer(“tcc_options”);
[/php]
を埋めておけば OKです。
「tcc_options」という部分はご自身で好きなように決めればOKです。
[php]
<?php
function showOptions() {
if ( isset($_POST[“tcc_options”])) {
check_admin_referer(“tcc_options”);
?>
Leave a comment