Google Crisis Response(Google)
災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。

2007年7月23日 月曜日

WordPress 2.2 への道

Filed under: WordPress
時間:23時47分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 さすがにそろそろ WordPress を 2.2 にアップグレードしたいと思い、ローカルサーバーに複製を作って挑んでみました。

 消えても平気ということで、いきなり 2.0.x から 2.2.1 にアップグレード。見事にこけました。文字化け+日本語リソースファイル読まない+プラグイン動かない。わかりやすいことです。

 やっぱり間を飛ばしちゃだめだよねと、今度は 2.1.3 にアップグレード。WP Paginate .2.2 を有効にすると表示が真っ白になるのと WP-AddQuicktag 0.2 のバージョンアップが必要なの以外はとりあえずOK。WP-AddQuicktag は乙彼さんによる日本語版の WP-AddQuicktag (ja) 0.4 にしました。WP Paginate の代わりは検討中です。お勧めのがあったらぜひ教えてください。

 一番やばいのは、自作の AmazonLink(未公開バージョン)の Ajax 部分です。UTF-8 でデータを返すはずなのに、なぜか Shift_JIS で処理されてます。当然文字化けしてしまって、検索結果が表示できなくなってます。原因究明のためしばし研究します。リリースが伸びてしまいました。期待していただいている BoozerBlog の方(お名前が見つけられませんでした)申し訳ないです。

 プラグイン以外での悩みは、テンプレートタグ(正確には PHP のユーザー関数)の wp_list_categories()
 2.1.x からは wp_list_cats() が非推奨となり、wp_list_categories() を使うようにとのお達しがありました。それじゃあと使ってみたのですが、children に相当するパラメーターがありません。第一階層のカテゴリだけをメニューのように表示させたいのですが、それにはこのパラメーターの機能が必須なのです。wp_list_cats() でしばらく済ませるということも考えましたが、普通に children が効きませんでした。これはどういうことだと調べてみると、wp-includes/deprecated.php で次のように定義されていました。パラーメーターが完全に無視されています。互換性をなくしておいて非推奨はひどい。

[php]
function wp_list_cats($args = ”) {
if ( is_array($args) )
$r = &$args;
else
parse_str($args, $r);

// Map to new names.
if ( isset($r['optionall']) && isset($r['all']))
$r['show_option_all'] = $r['all'];
if ( isset($r['sort_column']) )
$r['orderby'] = $r['sort_column'];
if ( isset($r['sort_order']) )
$r['order'] = $r['sort_order'];
if ( isset($r['optiondates']) )
$r['show_last_update'] = $r['optiondates'];
if ( isset($r['optioncount']) )
$r['show_count'] = $r['optioncount'];
if ( isset($r['list']) )
$r['style'] = $r['list'] ? ‘list’ : ‘break’;
$r['title_li'] = ”;

return wp_list_categories($r);
}
[/php]

 どうしようもない状況です。仕方がないのでタグを無効にしました。

 2.2.1 への道は険しいです。果たしてたどり着けるのはいつのことでしょうか。

2007年7月25日 追記

 AmazonLink の原因が判明。JavaScript からの検索リクエストを中継するためのプログラムに書いてある PHP 関数 header() の使い方が間違っていました。

 正しいのがこれ。

[php]
header(‘Content-Type: text/plain; charset=UTF-8′);
[/php]

 これを、このように間違えていました。引数の数とかはあっているので、これだと構文エラーにはならないのです。

[php]
header(‘Content-Type’, ‘text/plain; charset=UTF-8′);
[/php]

Comments (2)

HTML convert time: 0.109 sec. Powered by