WordPressハックカテゴリーの投稿

2007-03-04
晴れ

Ktai Location は WordPress 2.1.2 でバグる?

ゆりこ による 22:04:11 の投稿
カテゴリー: WordPressハック
タグ: ,

きょうは茨城方面に旅行してきたんですが、そのとき、位置情報つき URL が隠れず、そのまま表示されてしまいました (その後、手で修正しました)。位置情報の挿入は「Ktai Location」で行なっていますが、それにバグがあるようです。

以前は OK だったので、WordPress ME 2.1.2 にアップグレードしたのが原因かも。今週中に原因究明してバグフィックスしたいですね〜〜。

[追記 16:15] どうやら文字コードがおかしくなっていたようで、プラグインを入れ直したら正常動作しました。バックスラッシュと円記号にまつわる問題が発生していた模様です。配布ファイルでこういう問題を起さないよう注意しないといけませんね……。

[追記 2007-03-09 22:40] 「正常動作した」のは本家版 WordPress だけのようでした。ME 版 2.1.2 では依然バグっているようです……。

2007-03-01
晴れ

WordPress プラグイン Force Wave Dash

ゆりこ による 00:12:44 の投稿
カテゴリー: WordPressハック
タグ: , ,

UTF-8 なウェブログにつきまとう「波ダッシュ問題」を解決するプラグインを作ってみました。その名も「Force Wave Dash」です。新規投稿時、記事の編集時、記事を画面に表示するとき、「全角チルダ」を「波ダッシュ」に変換します。ふだん Windows バリバリに使っていて全角チルダに嫌悪感のない人には無縁のプラグインです;-)

仕様上、プラグイン導入前から存在する記事については、いったん編集しないことには全角チルダが残ってしまいます。一括変換する機能をつけるかどうか検討してみます。

ダウンロード

WordPress Plugins/JSeries での配布としました。
force_wavedash070.tar.gz
SHA1 digest: 9c6ce62aba50c3ceda120ab8fe1fb99e00d48406
かなり実験的かつ、好みの問題が大きいプラグインなので、当分はこのサイトで配布とします。

(続きを見る…)

2007-02-28
晴れ

WordPress 用 Google Maps プラグイン Lightweight Google Maps 1.00 リリース

ゆりこ による 11:34:48 の投稿
カテゴリー: WordPressハック
タグ: , , , ,

WordPress 用 Google Maps プラグイン「Lightweight Google Maps」のバージョン 1.00 をリリースします。いろいろあったバグも取れたと判断して、正式版とします。ダウンロードは上記リンクの配布サイトから行えます。

Yongfook 氏の Plug ‘n’ Play Google Map に不満があったので改良を加えていると、ほとんど全面的に書き直しになりました;-) 自分が欲しかった機能はほぼ実装できたので満足しています。

今後は、固定の地図ページ用のテーマファイルの改造を不要にしてインストールを簡単にしたり、API の第三者利用を防ぐ制限機能をつけたりなどの細かい改良を行う予定です。大幅な機能追加は、アイディアが出てきたら行うでしょう。もし意見や要望があれば、このエントリーにコメントをつけたり、わたしにメールするなどでお願いします。

[追記 21:46] サーバーが Windows の場合にマーカーが出ないというバグがあることが分かりました。WordPress を Windows サーバーで動かしている人は少ないでしょうが、ローカルテスト用に Windows で PHP を動かしている人はそこそこいると思います。でも影響は少ないと思うのでバグフィックスのリリース版は作りません。CVS からlw_googlemaps.php を入手して入れ換えてくらはい。

2007-02-26
晴れ

WordPress 用プラグイン Ktai Location 0.95 リリース

ゆりこ による 20:27:32 の投稿
カテゴリー: WordPressハック
タグ: , , , , ,

携帯電話の位置情報を WordPress ウェブログに取り込むプラグイン Ktai Location のバージョン 0.95 をリリースしました。予告していた通り、投稿文に書き込んだ住所やランドマークを緯度・経度に変換する機能 (Geocoding) を実装しています。

ダウンロードは上記リンク (配布サイト) から行なえます。Geocoding は非常に楽しいので、ぜひお試しください。

2007-02-24
晴れ

KML 出力機能を追加

ゆりこ による 15:30:36 の投稿
カテゴリー: WordPressハック
タグ:

Google マップに KML を読ませた結果の画像

Lightweight Google MapsKML 対応にするかどうか検討していましたが、とりあえず KML 出力機能だけ付けてみました。自分のウェブログに登録した位置情報を KML フォーマットで出力できるわけです。応用例としては、Google マップ に KML 出力用の URL を入力させると、KML を解析してマーカーを打ってくれます。

KML 対応バージョンは、CVS リポジトリー から入手できます。Lightweight Google Maps のバージョン 0.9.9.1 からは locations.php, Lat_Long.php だけを入れ換えれば動きます。KML 出力用 URL の詳細は、以下のような感じです (まだドキュメントはありません)。example.jp の部分は適宜読み換えてください。

http://example.jp/wp-content/plugins/lightweight-google-maps/locations.php
?format=kml&recent=100
最新100地点を KML で出力
?format=kml&category=2
カテゴリー ID 2 の記事にある位置情報を KML で出力
?format=kml&date=2007-02-24
2007年2月24日の記事にある位置情報を KML で出力
?format=kml&bounds=y1,x1,y2,x2
y1,x1,y2,x2 で示される範囲にある位置情報を KML で出力。(y1,x1 は南西の緯度・経度、y2,x2 は北東の緯度・経度)

なお、KML をプラグイン内部で使うのはあきらめました。プラグイン内部のデーターのやりとりは、独自の XML フォーマットのままとします。データーがシンプルで済むこと、UTF-8 以外のエンコーディングでも問題ないこと (KML は UTF-8 以外で出力するのは不適切) などが理由です。

[追記] KML 出力を調整して、Google Earth でも適切に読めるようにしました。ウェブブラウザーで KML 出力を取得すると、locations というファイルができるはずですが、これに kml という拡張子をつければ Google Earth で開けるようになります。あとは適宜お楽しみください!!

[追記 2007-02-26 20:40] 範囲指定のフォーマット解説を修正しました。緯度(y)・経度(x)の順で指定するので x1,y1,x2,y2 ではなく y1,x1,y2,x2 が正解でした。

2007-02-23
雨

WordPress プラグイン Lightweight Google Maps 0.9.9.1 リリース

ゆりこ による 22:58:04 の投稿
カテゴリー: WordPressハック
タグ: , , , ,

WordPress 用 Google Maps プラグイン Lightweight Google Maps バージョン 0.9.9.1 をリリースします。本日報告されたバグを修正したバージョンです。ダウンロードは上記リンク先 (Sourceforge.jp) から行えます。バグフィックスのために、管理画面での設定内容を少し変更しています。ドキュメントをよく読んで変更をお願いいたします。

今回はバグ修正と Shift_JIS リソースの同梱だけで、KML 対応などの新機能は入っていません。Shift_JIS 対応はしない予定でしたが、どうやら、Ajax で XML をやりとりする場合は Shift_JIS でもさほど問題ないらしいので、とりあえずリソースを添付して、問題があれば報告を仰ぐという形にしてみました。Shift_JIS なウェブログのみなさん、ぜひ試用をお願いいたします。

Lightweight Google Maps にバグ発覚

ゆりこ による 13:22:42 の投稿
カテゴリー: WordPressハック
タグ: ,

さきほど山崎さんより報告を頂きましたが、Lightweight Google Maps のバージョン 0.9.9 にいくつかバグがあったようです。

  • パーマリンク設定していないウェブログの場合、個別記事から地図ページへのリンクが動作しない。
  • 管理画面のオプションで、個別記事の地図サイズ設定が保存されない。

前者は完全に考慮不足で、地図ページの URL を決め打ちで作っていたのが原因でした。よく調べてみると、地図ページが他の固定ページの子ページであってもダメっぽいです。

後者は、バージョン 0.9.8 で動いていたのに 0.9.9 で作ってしまったバグです。フォーム要素の名前を微妙に変更したのが失敗していたようで。

これらを修正しただけで 1.0.0 として出すのはちょっと無理なので、バージョン 0.9.9.1 としてリリースすることにします。たぶん数日中には出せるでしょう。

[追記] 前者のバグを修正するには仕様変更が必要っぽいです。管理画面で「ページスラッグ」を入力させていますが、これを「ページ ID」にしないといけません。

2007-02-21
晴れ

Lightweight Google Maps を KML 対応にしようかな

ゆりこ による 13:36:00 の投稿
カテゴリー: WordPressハック
タグ: ,

Lightweight Google Maps はバージョン 0.9.8.1 から、地図に置くマーカーの情報を Ajax 的に非同期に読んでいますが、やりとりしているフォーマットは独自の XML です (JSON にはしませんでした)。しかし、これを KML にしてみるとオモロイかもしれませんね。いかにも Web 2.0 という感じになります;-)

ただし、KML を JavaScript で解析することになるわけで、ちょっと動作速度が遅くなるかもしれません。試しに実装してみて、パフォーマンスに問題なければ正式採用とする流れにしましょうか。もしくは、現状 format=xml というパラメーターがあるので、ここを format=kml としたときに kml を吐くような改造にしてもいいですね。これならパフォーマンスダウンは避けられます。

KML で、自分が旅行した場所の情報を出力できれば、データーの再利用が可能になるので、楽しいことができそうですね。逆に、悪用されたりして……。

サブディレクトリーを使うプラグインと Update Manager の制約

ゆりこ による 06:49:24 の投稿
カテゴリー: WordPressハック
タグ: ,

自作プラグインを wp-plugins.net に登録してみましたが、Update Managerで Ktai Location は検知されるものの、Lightweight Google Maps は対象外と表示されてしまいました。

どうやら、プラグインディレクトリーの下にサブディレクトリーを置くタイプのプラグインは、ディレクトリー名とプラグイン本体のファイル名 (から .php を抜いた部分) が一致してないと検知されないようです。Ktai Location は ktai_location.php というファイル1つだけのプラグインなので認識されましたが、Lightweight Google Maps は lightweight-google-maps ディレクトリーの下に lw-google-maps.php というファイルを置いています (現行バージョン 0.9.9 では googlemaps.php ですが、次期バージョンで変更します) 。

WordPress 自体は、ディレクトリー名とその下にあるプラグインのファイル名が違っていても、ちゃんとプラグインを認識するのですが、Update Manager は、よりきつい制限があるようです。

となると、プラグインのディレクトリー名自体を変更しなくてはなりません。ディレクトリー名をそのままにして、プラグインのファイル名を lightweight-google-maps.php にしてもいいんですが、それは長すぎるので却下。ディレクトリー名とファイル名を同じにしなければならないなら lw-google-maps で揃えるのがよいでしょう。

2007-02-20
くもり

wp-plugins.net に登録しました

ゆりこ による 13:26:07 の投稿
カテゴリー: WordPressハック

拙作の WordPress プラグインを WordPress Plugin Database (wp-plugins.net) に登録しました。こうすれば、プラグインの更新情報を確認できるプラグイン「Update Manager」で検索されます。

なんと、wp-plugins.net はプラグインのファイル名をユニークなキーとして管理しているようです。Lightweight Google Maps は googlemaps.php というファイル名ですが、すでに先約されているようで登録できませんでした……。仕方なく別の名前で登録しましたので、次期バージョン (1.00) ではプラグインのファイル名が変更されます;-)

また、このサイトでは、プラグインのバージョン番号体系が Major.Minor の2段階構成であることを前提にしているようです。わたしは Major.Minor.Bugfix の3段階構成が好きで、そういう付け方をしていましたが、WordPress Plugin Database に登録するなら体系変更が必要なようです。