任意のページをトップに

WordPress 2.1 の新機能として、任意の(静的)ページをトップページにできるようになった。 が、このページはホームとは見做されない(is_home() は false になる)らしい。例えば footer.php でホームとそれ以外で表示される内容が変わるように作られているテーマもあるのだが、何しろこの機能では front page ではあっても home とは見做されないので、思ったようには変わってくれない。if (is_home()) の部分を
if (get_option('show_on_front') == 'page' && get_option('page_on_front') == get_the_ID())
...
みたいにやるのだろうか。 また逆に、最新記事を別のページに割り付けることもできる。URL 的にはトップではないのだが、そっちでは is_home() も true と判断されるし home.php も適用されてしまう。 とにかく、こういう「仕様」であるらしい。

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;
}

のように指定する。

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 プラグインもちょっと改造した。