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 で次のように定義されていました。パラーメーターが完全に無視されています。互換性をなくしておいて非推奨はひどい。

  1. function wp_list_cats($args = '') {
  2.     if ( is_array($args) )
  3.         $r = &$args;
  4.     else
  5.         parse_str($args, $r);
  6.  
  7.     // Map to new names.
  8.     if ( isset($r['optionall']) && isset($r['all']))
  9.         $r['show_option_all'] = $r['all'];
  10.     if ( isset($r['sort_column']) )
  11.         $r['orderby'] = $r['sort_column'];
  12.     if ( isset($r['sort_order']) )
  13.         $r['order'] = $r['sort_order'];
  14.     if ( isset($r['optiondates']) )
  15.         $r['show_last_update'] = $r['optiondates'];
  16.     if ( isset($r['optioncount']) )
  17.         $r['show_count'] = $r['optioncount'];
  18.     if ( isset($r['list']) )
  19.         $r['style'] = $r['list'] ? 'list' : 'break';
  20.     $r['title_li'] = '';
  21.  
  22.     return wp_list_categories($r);
  23. }

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

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

2007年7月25日 追記

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

 正しいのがこれ。

  1. header('Content-Type: text/plain; charset=UTF-8');

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

  1. header('Content-Type', 'text/plain; charset=UTF-8');
参考になりましたか?
1 Star2 Stars3 Stars4 Stars5 Stars (未評価)
by WP-PostRatings
Loading ... Loading ...

2件のコメント »

  1. 画面が真っ白で焦った件…

    昨日の夜、ブログのトップページにアクセスしたら突然画面が真っ白になり何も表示されなくなりました。
    その少し前までは特に問題なく表示されていたので「しばらくしたら大丈夫や (more…)

    トラックバック by manchie.com — 2007年9月25日 火曜日 @ 16時21分

  2. WordPress 2.1 系にアップグレード…

    WordPress を 2.0.11 から 2.1.3 にアップグレードしました。
    (more…)

    トラックバック by 雑念ベース — 2007年11月26日 月曜日 @ 1時04分

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

HTML convert time: 0.379 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo