widget

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

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の使い方

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

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の使い方