このページの本文へ

前へ 1 2 3 次へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

作りやすく、使いやすくなったウィジェット機能

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

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 次へ

カテゴリートップへ

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

Microsoft Windows 7 Home Premium 通常版 Service Pack 1 適用済み

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

83人が購入

BenQ 24型 LCDワイドモニタ XL2420T

BenQ 24型 LCDワイドモニタ XL2420T

ベンキュージャパン

37,238円〜

3人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

20人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

6人が購入

Amazon.co.jp