ワードプレスのプラグインの作り方を書き留めておきます。長くなりますので分けて書いていきます。今回は基本的な内容になります。

ウィジェットに「おはようございます」、「こんにちは」、「こんばんは」の3つの挨拶文を表示するプラグインを作成しようと思います。

1.プラグインの基本

プラグインは、ワードプレス本体やテーマを修正することなく、カスタマイズや機能追加できるので便利です。

1.1 プラグインファイル

プラグインのphpファイルの先頭に以下の様な内容の標準プラグイン情報ヘッダーを記述します。もし作成したプラグインをワードプレスの公式プラグインディレクトリに登録するならば、プラグインの名前をチェックして、同じ名前がないことを確認します。


<?php
/*
Plugin Name: (プラグインの名前)
Plugin URI: (プラグインの説明と更新を示すページの URI)
Description: (プラグインの短い説明)
Version: (プラグインのバージョン番号。例: 1.0)
Author: (プラグイン作者の名前)
Author URI: (プラグイン作者の URI)
License: (ライセンス名の「スラッグ」 例: GPL2)
*/
?>

今回作成するプラグインを例にすると、以下のような記述になります。


<?php
/*
Plugin Name: greeting
Plugin URI: http://blog.raizzenet.com/how-to-make-wordpress-plug-in/
Description: ウィジェットに挨拶を表示するプラグイン
Version: 1.0.0
Author: issey
Author URI: http://blog.raizzenet.com/
License: GPL v2 or later
*/
?>

1.2 保存場所

プラグインのファイルは「wp-content/plugins/」のディレクトリに保存します。ファイル名は「Plugin Name」と同じ名前の「greeting.php」にしました。ファイルが複数ある場合にはディレクトリを作成してその中にファイルを保存します。もちろんファイルが1つの場合でもディレクトリを作成してもOKです。

2.ソースファイル作成

プラグインを作成する場合は、functions.phpの関数や他のプラグインと関数が同じ名前になるのを防ぐため、クラスを使用して記述した方が良いです。


// クラス「Greeting」のインスタンスを生成します
if (class_exists('Greeting')) {
	$greeting = new Greeting();
}

class Greeting {

	// コンストラクター
	public function __construct() {

		// ショートコードを追加する
		add_shortcode('greeting', array($this, 'show'));

		// ウィジェットのテキストでショートコードを実行可能にする
		add_filter('widget_text', 'do_shortcode');
	}

	// 時間によって挨拶文を変えて表示します
	public function show() {

		$t = intval(date_i18n('G'));
		if ($t > 5 && $t < 10) {
			$str = 'おはようございます〜';
		} elseif ($t >= 10 && $t < 18) {
			$str = 'こんにちは〜';
		} else {
			$str = 'こんばんは〜';
		}
		return $str;
	}
}
?>

コンストラクタ「__construct」はクラスが実行された時に自動的に実行されるメソッド(関数)です。ここでプラグインを実行できる様な仕組みを登録します。クラスのメソッドを登録するには、array($this, 'メソッド名')と、記述します。
メッソッド「show」はショートコードで表示するようにしていますので、ここでは表示せずに戻り値に文字列を格納します。

3.実行方法

管理画面でプラグインを有効にして、ウィジェットにテキストを追加し、内容のところに[greeting]と記述すればウィジェットに表示されます。

こちらも「プラグインの作成 - WordPress Codex 日本語版」参考にしてみてください。
次回は挨拶文の後に任意の文字列を追加・保存できる様に拡張します。