WordPress 2.1 に移行

このサイトの WordPressを 2.0.7 から 2.1 に移行した。意外に問題は少ない。2週間ほど出遅れている分だけ情報があるのがありがたい。

日本語化

WordPress 2.1用日本語リソースをもらってくる。wp-content/languages/ 以下に置いたほうがいいそうなので、ja_UTF.mo, ja_UTF.po と名前を変えて置く。

メイルの文字化け

コメントが付いたときの通知メイルのタイトル部分が化ける。これに関して、メールタイトル文字化けに2007.1.24追記として情報があった。 wp-includes/pluggable.phpの中の wp_mail()を変更するのだが、pluggable.php冒頭に
/* These functions can be replaced via plugins. They are loaded after plugins are loaded. */
と書かれており、確かに各々の関数は if ( !function_exists …): endif; で囲まれている。 というわけで、local.phpという自分用のプラグイン・ファイルを wp-content/plugins/ に作って、
function wp_mail($to, $subject, $message, $headers = '') {
        return @mb_send_mail($to, $subject, $message);
}
と書くことにした。ここに書いておけば、バージョンアップでwp-includes/ 以下が更新されても修正し忘れずにすむ。

その他の日本語関係

WordPress 2.1 抜粋表示方法 the_excerpt()という情報もあるのだが、特に手を入れなくても文字化けせずにRSSリーダで読めているし、自分のところの記事にトラックバックしてみたがこちらも問題なさそうだった。ここではいまのところ何も手を入れていない。これらは自分以外のところでしか問題がでないので、何とも確認しにくい。

プラグイン

根幹に関わるプラグインはいまのところ問題なさそうだ。細かいものでは、Link Relがちょっとおかしな挙動になってしまったようだ。しかしあまり重要ではないので当面ははずしておこう。そのうちゆっくり見直すことにする。 もうひとつ挙動がおかしいのはTam-attachmentだが、「WordPress 2.1 への対応は現在調査中ですのでしばらくお待ちください」ということなので、しばらく待つことにする。

検索窓

WordPress を使っているサイトを見てまわると、サイドバーに記事の検索を行なうための窓があることがしばしばある。単語を入力する窓はあっても submit のボタンがないこともあり、ああそれでもいいんだっけなどと思っていた。

「検索」ボタンがなくフォームだけがポッカリ開いていると、それが何を意味しているのかわからないので、そのフォームに「Search…」などと表示させておきたい。しかも単語を入力するときにはその表示を消したい、と思って調べたのでメモしておく。

見つけたこの例の type=”search” は Mac の Safari 限定なので普通は type=”text” にする。ついでに文字の色を変化させる。

<input type="text" name="s" id="s" onfocus="if(this.value=='(検索)'){this.className='word'; this.value='';}" onblur="if(this.value==''){this.className='prompt'; this.value='(検索)';}" class="prompt" value="(検索)" />

文字の色はスタイルシートで、入力される検索語をクラス word で、「(検索)」と表示させるときをクラス prompt で、

input.prompt { /* 入力を促す Search... など(フォーカスすると消える)の色 */
	color: #999999;
}
input.word { /* 検索語の色 */
	color: #000000;
}

のように指定する。

subversion

ようやく CVSからsubversionに移行した。自分一人の環境だし、滅多にコードも書かないので何のために?というところだが、まあいろいろとファイルの管理などを。出遅れた分あちこちに情報があるので割とスムーズに移行できそうだ。 しかしいくつかの不満はある(使い手が慣れていないからかもしれないが)。ひとつは、パーミッションが保存されないこと。CVSでは作業スペースでパーミッションを変更しておいた状態で update しても(内容はupdateされても)パーミッションが変わることはなかった。subversionでは、いったんファイルを消してから新たに作ったかのように、元のパーミッション(その時点の umaskにしたがって)になってしまう。group の変更も元に戻ってしまう。webページのように、webサーバから見えるようにしてチェックしつつ作業をしている場面では面倒くさい。tarを使うときのようにパーミッションなどが保存されるといいのだが。 もうひとつの問題は日本語の文字化け。CVSより格段によくなっているけれども。 まず、ここの環境では /etc/environment で LANG=ja_JP.EUC-JP となっているしその中の自分の環境でも LANG=ja_JP.EUC-JP としている。普段使いのエディタ Emacs も (set-default-coding-systems ‘euc-japan) だ。そこで /var/lib/trac/(リポジトリ)/conf/trac.ini で
  [trac]
  default_charset = euc-jp
とした。 ファイルの中身がeuc-jpなら何の問題もないのだが、だんだんutf-8のものも出てきた。するとTracで閲覧するときに化けてしまう。これは TracJaの説明にもあるように、
Subversion リポジトリに格納しているファイルのエンコードが、ファイルごとに違う場合、 Subversion 側で各ファイルの svn:mime-types 属性にcharset を正しく設定することで解消します (trac-0.8.2 以降):
で解決した。phpだからといって mime-typeを application/phpとするのはやりすぎで、閲覧することを考えると text/* にしておくのが吉。text/x-php としてみた。text/plain がもっとも無難だとは思うが。 Emacsでは[[psvn.elを使う。編集中に差分を見たいとき = (差分)とすると、euc-jpのバッファにutf-8を表示しようとして文字化けしてしまう。E (Ediff)だと化けずに表示できるので、こちらで見ることにしよう。

Tam Attachmentプラグインと PJW Mime Configプラグイン

画像以外のアップロードファイルを管理するのに便利なものを探してみた。差分ファイル diff をそのまま置くことができなかったのだ。そこで[[http://blog.ftwr.co.uk/wordpress/mime-config/|PJW Mime Configプラグイン]]でアップできるファイルの種類を増やし、[[http://ideasilo.wordpress.com/2006/08/10/tam-attachment/|Tam Attachmentプラグイン]]で管理できるようにした。 ところで Firefoxでは diff ファイルを開こうとすると、ブラウザでそのまま開いてはくれず外部アプリケーションを要求する。[[http://forum.mozilla.gr.jp/?mode=al2&namber=30029&rev=&&KLOG=190|もじら組フォーラム]]に既に議論があった。ちょっと眺めるだけなのだからブラウザ内で表示してくれてもよさそうなものだが。アップする際にファイル名を ***.diff.txt として誤魔化せばいいのか。しかしあまりいい気持ちではないな。

Inline Google Maps Plugin改

[[http://blog.macfeeling.com/archives/2239|MacFeling]]で紹介されているのを見つけて、 [[//pasero.net/~mako/blog/s/35#inline_google_maps_plugin|先日書いたinline google maps plugin]]—WordPressの個々の記事やページにGoogleマップを置ける—の「ひとつの地図にひとつのマーク」という制約を改造して、複数のマークを置けるようにしてみた。書式の互換性がなくなってしまったので、ファイル名を gmaps-hm.php と変えておいた。 * [[//pasero.net/~mako/blog/gmaps-hm/|gmaps-hm]] オリジナルのほうは「ひとつの地図にひとつのマーク」をより便利に使えるように [[http://macdiggs.com/index.php/2006/10/13/inline-google-maps-for-wordpress-version-2/|v2.0]]へと進化しているが、こちらは v1.1改。 [gmap name=’20061015′ lat=’38.27501322074987′ lng=’140.83431959152222′ zoom=’12’] [gmark lat=’38.27501322074987′ lng=’140.83431959152222′ desc=’ひとつの場所’ label=’P’] [gmark lat=’38.281717′ lng=’140.869314′ desc=’もうひとつの場所’ label=’Q’] [/gmap] === WP-SimpleGmaps ==== 似たようなプラグイン [[http://aoina.com/archives/45|WP-SimpleGmaps]]というのを見つけた。でもこれもひとつの地図にひとつのマークのようだ。

wp-slimstat

アクセス解析プラグインを wp-shotstatから[[http://www.duechiacchiere.it/wp-slimstat/|wp-slimstat]]に変えてみる。そこから 0.9.2を。 日本語化ファイルは [[http://bd.dotted.jp/archives/90/|BirDesign’]]さんのところから 0.9.1 用のをそのままいただいた。 ところが WordPress database error: [You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’ at line 3] SELECT `tp`.`post_title` FROM `wp_posts` AS `tp` WHERE (1 = 1) AND `tp`.`ID` = の表示が大量に出る。検索して[[http://www.myblackroom.com/index.php/30/statistics-for-your-blog/|対処法]]を発見した (中ほどの #1 Lots of database errors の項)。permalinkを使っていると出るらしい。この対処法で解決した。 ついでに[[http://equine.ddo.jp:8080/~takeshi/diary/?p=1044|wp-slimstatの高速化]]という情報も発見したが、0.9.2では既に対策済のようだ。

Google マップを使う

WordPress でGoogle マップを使ってみる。

Plug ‘n’ Play Google Map

新しい版はPlug ‘n’ Play Google Map。旧版の日本語の解説がある

マップ型の目次といった使い方になるのか。このサイトのマップ

記事だけでなく、(静的)ページのマークも地図に載るように改造した[1]

ついでに、ページのマークは「アルファベット付」マークになるようにした。Tutorialのソースを参考に切り貼り。印刷時にもアルファベット付マークになるように printImagemozPrintImage も設定するようにした。印刷用のマーク(例: “A”)は

http://www.google.com/mapfiles/markerAie.gif
http://www.google.com/mapfiles/markerAff.gif

とか言う名前であった。

Inline Google Maps Plugin

“目次”マップではなく、個々の記事にマップを貼りたい。wp-dokuwikiプラグインに付属しているはずなのだが、うまく動かない。

Inline Google Maps Plugin というのがあった。これは簡単そう。

[gmap name='20061007' lat='38.27501322074987' lng='140.83431959152222' zoom='12' desc='プラグインのテスト']
[gmark lat='38.27501322074987' lng='140.83431959152222' desc='プラグインのテスト']
[/gmap]

ひとつのマップにひとつのマークしか置くことができない。

コメントにあるように、当分はこのままらしい。

  1. (静的)ページにも緯度経度情報を入力できるようにGeo プラグインもちょっと改造した。