このページの本文へ

WordPress 2.8登場!新ウィジェットAPIの使い方 (3/3)

2009年06月17日 14時00分更新

文●藤本 壱

  • この記事をはてなブックマークに追加
本文印刷

●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のドキュメントにあります。今回紹介したサンプルプログラム合わせて参考にしながら、オリジナルウィジェット作りにチャレンジしてみてください。

前へ 1 2 3 次へ

Web Professionalトップへ

この記事の編集者は以下の記事をオススメしています