7/1,2 と開催された OpenSource World 2009 に行ってきました。
いくつかセッションを受講して、パビリオンをまわって、最後は .org パビリオンで開催されたCMSパネルディスカッション「CMS最新事情〜ここ1年で大きく変わったCMS模様!」にめ組さんと一緒に WordPress コミュニティとして適当にパネラーとして参加してきました。
digitalcube め組さんと WordPress 日本語ローカルチームの tai さん、色々とお世話になりました。
でまぁ、適当な所感など。
続きを読む
「WordPress」カテゴリーアーカイブ
WordPress の更新情報を JSONP 形式で出力
さて、昨日のエントリの続き。
「Googlle AJAX Feed API なんて外部のサービスに依存したくないんじゃ!」という人のために、昨日と同様のことを自前で行うための方法。
WordPress の更新情報を JavaScript で取得して表示するには AJAX と呼ばれる技術を使います。
しかし、http を通してデータを読み込むための XMLHttpRequest では、制限として別ドメインのデータを読み込むことができません。
これを回避する方法が JSONP です。
hiromasa さんが、昨日のエントリにトラックバックしてくれた静的 HTML に WordPress を埋め込む方法を用いて JSONP 形式で、WordPress の最新記事を取得してみましょう。
続きを読む
WordPress Related Post for Japanese で全文検索を行う
hiromasaさんが作成したWordPress用の関連投稿表示プラグインWordPress Related Post for Japanese(wp-jrelated)を利用して、各記事に過去記事から関連する記事を自動で表示しています。
この wp-jrelated が関連記事を検索する仕組みですが、おおよそ以下のとおりです。
- Yahoo! 日本語形態素解析でコンテンツを解析し、名詞を抽出
- 抽出された名詞を頻出順でカンマ区切りでDBに格納
- 抽出された名詞の中から頻出する名詞トップn個を抜き出し、それを使って過去記事を like 検索
- 関連度合いは、元記事の頻出単語が幾つ関連記事に含まれるかを計算
その際、上位頻出単語の方が重みを持つようにランク付け
※このランク付け方法が中々良くできてます、ソースを読むことをオススメ
これだけで、かなりの精度を出せているので大したモノです。
しかし、単語のMD5ハッシュを取ってデータを格納しているため「WordPress」と「wordpress」、「ついった」と「ツイッタ」を別単語として扱ってしまいます。
また、今は大丈夫ですが、単語を like の or で検索しているため記事数が膨大になった時のパフォーマンスも気になります。
てなわけで、MySQL の全文検索機能を使って、さらに精度アップ&検索速度アップを狙ってみました。
続きを読む
適切なフィルタフックを探す
WordPress では、アクションまたはフィルタをフックして、WordPress 本体の処理結果や方法をプラグインで変更することができます。
( see. プラグイン API – WordPress Codex 日本語版 )
自動で何かをする系のプラグインを開発する際は、まずどのアクションフック or フィルタフックが使えるのかを調査することから始めます。
codex のプラグイン API/アクションフック一覧, フィルターフック一覧から探すのが一般的だと思いますが、私の場合は WordPress のソースから使えそうなアクションフック・フィルタフックを探します。
この辺のノウハウってあまり文章化されていないようなので、私のやり方を簡単にまとめておきます。
続きを読む
各種フィード用テンプレートの変更
だるまんさんが、Twitter 上で「なんでwpにfeedのテンプレートがないんだぜ?」とつぶやいていました。
確かに WordPress では、テーマ変更で見栄えがガラッと変わるのに feed は色気の無い画一的なものばかり。
feedburner 導入で表示されるフィードのようにちょっと一工夫したカッコイイフィードを表示すると自己満足度が急速に上がりそうです。
他にも P2 テーマ用にエントリ本文+コメントを含んだフィードを配信するとか、私的にはあまり嬉しくないですがフィードに AdSense 等の広告を含んだりとか、色々と応用範囲が広がりますね。
そんなわけで、各種フィード用テンプレートをデフォルト以外のものに変更する方法を調べてみました。
結論から言うと、アクションフックの remove, add で、簡単にできます。
WordPress では、各種フィードを要求された場合 do_feed_rss
, do_feed_rss2
, … というアクション(フィルタ)をフックして、それぞれ do_feed_rss()
, do_feed_rss2()
, … という関数内でテンプレートをロードしています。
なので、これらのアクションフックを remove 後、新たにテーマフォルダ内のテンプレートをロードするようなアクションフックを add すれば、お好きなテンプレートをロードできるようになるのです。
続きを読む
Re: 日本での WordPress コミュニティ
Ktai Style 作者のゆりこさんが、日本での WordPress コミュニティーをまとめてくださっています。
このうち、私は WordPress Plugins/JSeries と WordBench に参加させてもらっています。
実は、もうひとつ Twitter 上で運営されているコミュニュティがあります。
一応、私が管理しているので、簡単にご紹介。
WordPress Fan (wordpress_fan) on Twitter
ついっこを使って運営されているため、@wordpress_fan 宛に@リプライすると、Twitter で @wordpress_fan をフォローしている人の TL につぶやきが届きます。
Twitter を使っているので、まったりとしか情報は流れませんが、広く薄く情報を集める ( or 広める) には、それなりに使えると思います。
Twitter 利用している WPer な人は、フォローしてガンガンと @wordpress_fan 宛につぶやいてやってください。
また、wordpress_fan では、いくつかのRSSフィードを定期的に監視して投稿しています。
wordpress_fan から流れるRSSフィードは、以下のとおりです。
- WordPress Plugins/JSeries
- New Releases of WordPress Plugins/JSeries
- WordPress 日本語ローカルサイト
- WordCamp Japan イベント公式サイト
- livedoor クリップ > wokamotoのクリップ / WordPress
Twitter では、他にぼのさんが管理されている fun WordCamp Japan と言うコミュニュティもあります。
こちらも WordCamp 前後には盛り上がってました。
# 今は沈静化?
P2 / Faster Blogging 日本語リソース
先日行われた WordCamp Tokyo 2009 でも話題になっていたらしいWordPressの新テーマ「P2 Ver.1.0.1」用の日本語リソースを作りました。
まだまだ、訳がおかしなところもあると思いますが、とりあえず公開します。
添削は大歓迎なので、お気づきの点があれば、ご指摘お願いします。
昨晩はカイ士伝さんのP2サイトで色々と遊ばせてもらったのですが、これが面白い。
新規投稿や、新規コメントがあった時に Auto Reload するところや、キーボードショートカットを用意してあるところなど、非常に使いやすいテーマです。
とりあえず、私もテストサイトに入れてみました。
P2テーマの詳細は、カイ士伝さんのエントリ "WordPressがTwitterみたいになるテーマ「P2」導入" 辺りを参考にしてみてください。
ダウンロード
Commenters Info
Twitter API の仕様変更
エイプリル・フールも明けた平和な朝、Twitter の TL に流れた @iddz のこの発言で、異変に気づきました。
なんと、ついこんが次々と @show のアイコンに変わっていくのです!
しかも、ウチのサイトだけでなく、他の Twicon for WordPress を導入してくださってるサイトすべてがです!
昨日のバージョンアップでしくったか?と焦りましたが、どうやら Twitter API で仕様変更があったようです。
続きを読む
Head Cleaner と WP Super Cache を同時に動作させる際の問題点
拙作のプラグイン Head Cleaner と、WP Super Cache を同時に有効化している場合、多少問題があります。
Head Cleaner では、JS、CSS のキャッシュを wp-content/cache/head-cleaner
フォルダに作成するのですが、WP Super Cache でキャッシュファイルを削除すると、このフォルダも削除されてしまいます。
# これは Twicon、wp-kougabu でも発生する問題です。
で、これに対処するには、今のところ wp-super-cache/wp-cache-phase2.php
の 368 行目を以下のように修正するしかありません。
$protected_directories = array( $cache_path . '.htaccess', $cache_path . 'meta', $cache_path . 'supercache', $cache_path . 'head-cleaner' );
ちなみに、Twicon、wp-kougabu も導入している場合は、以下のように修正すればおっけです。
$protected_directories = array( $cache_path . '.htaccess', $cache_path . 'meta', $cache_path . 'supercache', $cache_path . 'head-cleaner', $cache_path . 'twicon', $cache_path . 'wp-kougabu' );
この辺 WP Super Cache が、wp-content/cache
内のフォルダ・ファイルを問答無用で削除するという凶悪仕様のため、Head Cleaner (Twicon) 側では対処の使用がありません。
WP Super Cache が、自分が作ったフォルダ以外は削除しないようになるか、せめて $protected_directories を他のプラグインから指定できるようにしてくれれば、対処のしようがあるんですが…