●widgetメソッドの定義
次に、ウィジェットの内容を出力するために、先の「クラスの定義」の部分にwidgetメソッドを定義します。このメソッドのパターンは、次のようになります。
function widget( $args, $instance ) {
extract($args);
echo $before_widget;
echo $before_title . ウィジェットのタイトル . $after_title;
ウィジェットの内容
echo $after_widget;
}
「ウィジェットのタイトル」の部分には、ウィジェットの前に表示するタイトルを指定します。また、「ウィジェットの内容」の部分に、ウィジェットの内容を出力するための処理を書きます。
「ステータス表示ウィジェット」の場合、widgetメソッドの内容は以下のようになります。「ウェジェットの内容」にあたる部分に、データベース内の投稿数とコメント数をカウントして出力する処理を入れています。
function widget( $args, $instance ) {
extract($args);
echo $before_widget;
echo $before_title . 'ステータス' . $after_title;
global $wpdb;
$post_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'");
$comment_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
echo "<ul>\n";
echo "<li>投稿数:$post_count</li>\n";
echo "<li>コメント数:$comment_count</li>\n";
echo "</ul>\n";
echo $after_widget;
}
●ウィジェットをWordPressに登録
ウィジェットのクラスができたら、そのクラスをWordPressに登録して、ウィジェットを使えるようにしましょう。クラス定義の外に、以下のような文を書く必要があります。
add_action('widgets_init', create_function('', 'return register_widget("クラス名");'));
「ステータス表示ウィジェット」の場合、クラス名は「WP_Widget_Status」なので、以下のように書きます。
add_action('widgets_init', create_function('', 'return register_widget("WP_Widget_Status");'));
プラグインとして動作させる
最後に、プラグインとして動作するように、PHPファイルの先頭にプラグイン名などの情報を書き加えれば完成です。
完成したプラグインのファイルは、以下のアドレスに公開しました。実際のソースコードは、Zipファイルの中の「StatusWidget」フォルダにある「statuswidget.php」ファイルを参考にしてください。また、「StatusWidget」フォルダをWordPressの「wp-content」→「plugins」ディレクトリにアップロードし、プラグインを有効化すれば、ウィジェットの動作を実際に試せます。
http://www.h-fj.com/ascii/statuswidget/statuswidget.zip
ウィジェットAPIの詳しい情報は、WordPressのドキュメントにあります。今回紹介したサンプルプログラム合わせて参考にしながら、オリジナルウィジェット作りにチャレンジしてみてください。