About
もうひとつの hiromasa.zone。-
Recent Comment
- WordPress Thematic フレームワークで hiromasa.another をつくる
(6)
02/23 ひろまさ
02/23 ひろまさ
02/23 M's Life 2
03/02 記事の下にでるメタ文字のカスタマイズ
- wp-kougabu 1.12 リリースとぶらりぶらり (11)
- WordPress Related Post for Japanese 1.50 RC リリース (4)
- Eclipse PDT + XAMPP で WordPress の開発環境をつくる
(5)
03/05 power source*
- WordPress Thematic フレームワークで hiromasa.another をつくる
(6)
Kyodeki
- Miro HD Video Player と SongBird (63)
- WordPress 2.5 のタグ重複について追う (61)
- Ubuntu 9.04 の Firefox 3.5 と 3.5 対応の WP!Pikon (61)
- akismet-multibyteview (for Akismet 2.1.3) リリース (60)
- We Love WordPress 2009 (58)
- WordPress + Windows Live Writer で画像のアップロードができない場合 (57)
- CUI と GUI と (54)
- WordPress の流れをくんだフォーラムアプリ bbPress (52)
Category
-
Random Post
WordPress
このブログで関連すると思われる他の投稿
-
akismet-multibyteview をリリースしました
イン, プラグ, Akismet, コメント, バイト, マルチ, SQL, WP, WordPress, akismet-multibyteview, スパム, 修正, 動作, 文字, 表示, -trunk, 2.0.11, 2.2.3, 2.3, JSeries -
akismet-multibyteview (for Akismet 2.1.3) リリース
JSeries, イン, プラグ, WordPress, Akismet, Plugins, akismet-multibyteview, Notifier, リリース, 画面, 管理, 通知, 2.1.3, 2.3, お使い, アップデート, インストール, 今回, 対応, 方 -
そう、ぼくはウィジェットを使っていなかった…
tkzy, recent, comment, テーマ, ウィジェット, ぼく, コード, プラグイン, 人, 機能, WP, comments, get, hack, wp-kotodama, サイド, バー, 2004, JSeries, php -
使っている WordPress プラグイン 2010年版
WordPress, プラグイン, 投稿, 表示, JSeries, Plugins, 画像, 記事, ウィジェット, リンク, コメント, for, with, アーカイブ, エントリ, サイド, バー, ポスト, ランダム, 一覧 -
wp-kougabu 0.50 & wp-odeckr 1.00 リリース
画像, Flickr, イン, プラグ, 投稿, wp-kougabu, メディア, ライブラリ, WordPress, wp-odeckr, サイト, フレーム, リリース, 写真, 方, 時間, アーカイブ, フック, 一覧, 場合















wp-kotodama 1.00 & wp-kyodeki 1.00 リリースと WordPress のウィジェットとオブジェクト指向
なんだかリリースお知らせばっかりですが(笑)、wp-kotodama と wp-kyodeki を JSeries のほうにリリースしましたのでお知らせします。 いわゆる Recent Comments と、Todays Popular を表示する WordPress 用ウィジェットプラグイン2種類です
kotodama は旧 widget、kyodeki は新 widget の仕組みをつかっていますので、ソースが気になる方はみてみてください。 せっかくなのでここで新ウイジェットの仕組みとかも書いてみます。
wp-kyodeki で既に .another リリース版をおつかいの方は、上書きしていただければと思います。 パスワード付き投稿も集計対象にしていたのを修正しています。
wp-kotodama のほうは修正ありませんのでそのままでOKです。
なお両方ともウイジェットといいつつテンプレートタグでも動作できます。
kotodama_get_comments($limit = 7, $gravatar = false, $size = 18)それぞれ関数定義はこんなかんじなので、<?php kotodama_get_comment(); ?> とか <?php the_kyodeki(); ?> とかをテーマ内にかいてあげれば、ウィジェットないテーマでも使えます。 引数はのりでかいてください。
さて、WordPress の Widget システムですがご存じのように 2.8 からつくりかたが変わっています。 ホントは古いつくりかたの kotodama のほうを新しくかきなおそうかとおもったのですが、コアの新旧変換ロジックもおもしろいのでそのままにしました。
新と旧ウィジェットシステムの大きな違いは、マルチウィジェットのかきやすさです。
kotodama はどこかひとつ配置したらもう配置できません。 kyodeki ではいくつでも配置できるのが分かると思います。 また同一ウィジェットで、配置によって異なる各設定も別に保持できます。
旧ウィジェットシステムではマルチしたい場合は、自分のプログラムでマルチになることを意識してかかなければならずで結構大変だったのですが(kotodama はしていません)、新ウィジェットシステムでかくと何もせずともマルチの制御をシステムでやってくれるようになっています。
ちらっと仕組みを書くと、新ウィジェットシステムは、クラスの継承を行う形で処理をかくのがキモです。 extends WP_Wiget ってやつです。
クラスの継承というのがよくわからない方は、コアにある WP_Wiget の中身(結構長いぜ)を全部コピペして自分のソースにはりつけたと思ってください。 コピペはあんまりなので extends ってかくだけでOKなようになってると思ってもらえれば、とりあえずは正解です(笑)
WP_Wiget にはウイジェット状態維持(配置場所やオプション)、その他管理画面の入出力が便利なようにする処理がはいっていて、自分がしたい処理の部分だけ書き換(オーバーライド)すると簡単に WordPress のウィジェットとして成立するようになっています。
で、ここからはクラスの妙。 クラスは定義するだけでは動作はせず、インスタンスというものをつくる必要があります。 これは言葉がめんどくさいだけで、実質的には構文で「new クラス名」ってかくだけなのですが、これをやってくれているのは今回から WordPress のコアです。
インスタンスはひとつのクラスの定義から複数作成することができます。 振る舞い(メソッド)は同じだけど、値が違う・・・。 まさにマルチウィジェットです。 必要時に必要な数だけ WordPress が該当ウィジェットを new してくれるので、こっちは考えなくてもマルチになってくれるという寸法です。
うーん、オブジェクト指向でよくある「車クラスを継承してカローラクラス」をつくります。 なんて説明よりなんて実践的(笑) 実際のところオブジェクト指向のとっかかりとしては、継承の感覚(さっきコピペっていったところ)より、ひとつのクラスから複数のインスタンスがつくれる感覚の方が、実例がないとつかみづらいですよね。 カローラは大量生産できるのです。
というわけで、オブジェクト指向まで勉強できちゃうすてきな WordPress の巻でした。