WordPressの勉強-07「ウィジェット作成」

December 7, 2010
widget_main.gif

WordPress では「ウィジェット」機能を使うと、サイドバーやフッターの項目の中身や並び順を、管理画面から簡単にレイアウトできます。

その中の「テキスト」ウィジェットを使用すると、任意のテキストや HTML が作成できます。ただ、PHP や WordPress の機能を活用しようと思えば、やはり新規にウィジェットを作成しておいたほうが便利ですね。

で、今回はオリジナルウィジェットの作成方法のメモ書き。

ウィジェットの作成

【大まかな流れ】

  1. WP_Widget クラスを継承するサブクラスとしてウィジェットを定義。
    • ウィジェットのコンストラクタ
    • widget()
    • update()
    • form()
    の各メソッドに処理を記述。
  2. widgets_init フックに作成したウィジェットを登録。
  3. 作成したコードを「 functions.php 」に追加。

【サンプルコード】

//クラス名は任意
class クラス名 extends WP_Widget {
	//コンストラクタ クラスと同じ名称
	function クラス名() {
		// ウィジェットの初期設定
		$widget_ops = array('classname' => 'ウィジェットのクラス', 'description' => 'ウィジェットの概要')
		$this->WP_Widget('ウィジェットID', 'ウィジェット名', $widget_ops);
	}

	function widget($args, $instance) {
		// ウィジェットのコンテンツ出力
	}

	function update($new_instance, $old_instance) {
		extract($args);
		echo $before_widget;
		echo $before_title . ウィジェットのタイトル . $after_title;
		//ウィジェットの内容
		echo $after_widget;
	}

	function form($instance) {
		// 管理画面のウィジェットに出力するフォームを記述(オプションの設定など)
		// $instanceには保存したオプションが連想配列で引き渡される。
	}
}
//MyWidgetInit関数
function MyWidgetInit() {
	//ウィジェットのクラス名を登録
	register_widget('クラス名');
}
//widgets_initアクション時にMyWidgetInit関数を実行
add_action('widgets_init', 'MyWidgetInit');

複数ブログを管理する場合、同じ内容の項目を別データに作成しておき、「 include 」で読み込むだけのウィジェットを作成していると、修正があれば元データをいじるだけなので便利なはず。

参考サイト

WordPress のウィジェットを自作してみる(ただし 2.8以降用) - digitalbox

WordPress カスタムウィジェットの作り方 ≪ nulldesign

ASCII.jp:WordPress 2.8登場!新ウィジェットAPIの使い方

STAFF_01 [KYS-LAB]: ページが見つかりません。