ウィジェットのメモ

ウイジェットもサクッと実装したいもののひとつだ。ウイジェットAPIが色々やってくれるが、毎日ウイジェットを作るわけではないので使い方を忘れてしまう。だからメモ。

以下が基本構造

class MyWidgetItem extends WP_Widget {

//コンストラクタ。名前をクラス名に合わせること
	function MyWidgetItem() {
    	parent::WP_Widget(false, $name = 'ウィジェットの名前');
    }

//ウイジェット本体を吐き出す部分
//$argsにはウイジェットの基本設定(beforeとかafterとか)が入っている。dynamic_sidebar()で設定するアレだ。extractをかけておく。
//$instanceにはこのウイジェット固有の設定は入ってくる
    function widget($args, $instance) {
       
    }

//管理画面で情報を変更するとここを通るので、サニタイズなどをしてから$instanceを返す。
//$new_instanceを返すだけじゃダメなのか?
    function update($new_instance, $old_instance) {

    }

//管理画面のフォーム
//既存の値は$instanceに入っているので適宜取り出す。
//$this->get_field_idをガンガン使います。
    function form($instance) {

    }
}
add_action('widgets_init', create_function('', 'return register_widget("MyWidgetItem");'));


以下がサンプルコード。マークアップは適当に。


class MyWidgetItem extends WP_Widget {
	function MyWidgetItem() {
    	parent::WP_Widget(false, $name = 'ウィジェットの名前');
    }
    function widget($args, $instance) {
        extract( $args );
        $title = apply_filters( 'widget_title', $instance['title'] );
        $body = apply_filters( 'widget_body', $instance['body'] );
    	?>
    	
' . $body . '

'; ?>

実は覚えることは多くない。この雛形を使い回せば何とかなりそう。同じ名前のローカル変数が多いのがちょっと嫌ですね。

コメント

タイトルとURLをコピーしました