Codex には「WordPress ウィジェット API」というページがあるがあまり詳しくない。
バージョン 2.8 からウィジェットの API が変わったそうで、このページからリンクされている記述を抜粋したのが以下
新ウィジェット API
WP_Widget は、ウィジェットプラグインを書くときの複雑さの多くを抽象化により解消するクラスです。特に複数利用できるウィジェットの作成に威力を発揮します。
- 基本的には、WP_Widget を独自のクラスで拡張する。このクラスはコンストラクタおよび widget()、form()、update() の3つのメソッドから成る。
- widget() – 実際のウィジェットのコンテンツを出力する
- update() – 設定の保存を処理する
- form() – 設定フォームを出力する
- ウィジェットは register_widget() にそのウィジェットのクラスを渡すことによって登録する。
- WP_Widget を使って書いた全てのウィジェットは複数のインスタンスを作成することが可能。
- 設定
- 古い単独インスタンスのウィジェットの設定は、WP_Widget に移植され、新しい複数設定保存の形式にアップグレードされる。これは単に、インスタンス ID をキーとする多次元配列の形式。
- 古い単独インスタンスのウィジェットの設定はそのままで動作するはず。
- もしカスタム設定の保存が必要な場合は、独自の et_settings() および save_settings() メソッドを提供できる。
- WP_Widget ソースはこちらで見ることができます (詳細および使い方は phpdoc を参照): http://core.trac.wordpress.org/browser/trunk/wp-includes/widgets.php
- 使い方の例はこちらで: http://core.trac.wordpress.org/browser/trunk/wp-includes/default-widgets.php
- もし今までにウィジェットを作成した場合は、WP_Widget に移植し、改善のためのフィードバックを Trac Ticket 8441 に送ってください。
- WP_Widget の基になった MultiWidget クラスに敬意を表します: http://blog.firetree.net/2008/11/30/wordpress-multi-widget/
- 上記は Ryan Boren の wp-hackers への投稿から抽出した。
WordPress ウィジェット API も参照のこと。
