WP3.3.1: WP3.01からアップグレード

随分と間が空いていたのでアップグレードをしました。WP-Math-2を導入したお陰でモディフィケート箇所が減りました。これは良い事。ただ一方で使用テーマを変更した事で一部追加箇所が発生しました。これは仕方ないですね。

そんなわけで差分箇所の覚書。カレントは wp-includes です。 category-template.php はタグクラウドの表示数増加。 comment-template.php は属性 aria-require が Validator で引っかかる為に修正しています。

% diff category-template.php.org category-template.php
531c531
<               'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
---
>               'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 999,
% diff comment-template.php.org comment-template.php
1523c1523
<       $aria_req = ( $req ? " aria-required='true'" : '' );
---
>       $aria_req = ( $req ? "" : '' );
1536c1536
<               'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
---
>               'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8"></textarea></p>',

標準関数の一部修正ってなんとか上手くできないものでしょうか。「PHP勉強せい!」と言われそうですが、教えて貰いたい今日この頃。

WP3.0.1: WP2.9からアップグレード

全然手付かずだったバージョンアップ作業を実施しました。
基本的には自動アップグレードのボタンを押すだけで事足りてしまったのですが、一部注意点があったのでメモ。

問題があったのはウィジェットで検索を使っている場合の、検索結果の画面を出すとき。生成される検索結果画面のヘッダ部分に&がそのまま入っているのが原因。

wp-includes/general-template.php の1659行目以降を次のように書き換えます。要は href の値として入力されている $href を htmlentities() で囲ってしまおうという作戦。

// ++ del 2010-10-03
//        echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . $title . '" href="' . $href . '" />' . "n";
// -- del 2010-10-03
// ++ add 2010-10-03
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . $title . '" href="' . htmlentities($href) . '" />' . "n";
// -- add 2010-10-03

これで一応ちゃんと動くようになりました。今回のバージョンで動作不具合の修正箇所はここだけ。あとは、毎度の修正を入れて完了。

WP2.7: WP2.6からアップグレード

暫くまともにメンテナンスしていなかったのですが、正月休みを利用して最新版の2.7まで一気にアップグレードです。まだ詳細までは動作確認していませんが、今のところは次の修正内容だけで問題なく動作中。アップグレード手順もいつもと変わらないので、簡単に。

  1. WordPress | 日本語から2.7をZIP形式でダウンロード
  2. ZIPアーカイブをとりあえず展開
  3. wp-config-sample.phpをコピーしてwp-config.phpを作成: 前バージョンの内容にあわせて変更し、新バージョンからの項目があればその分を記載・修正する
  4. wp-includes/formatting.phpを修正(via cefa::blog ? Blog Archive ? MathML: itexToMMLを導入する)
  5. wp-includes/category-template.phpを修正(via cefa::blog ? Blog Archive ? WP2.5: タグクラウドの表示上限を上げる)
  6. wp-includes/widgets.phpを修正(コメント表示用のWidgetがそのままでは動作しなかった為修正: 下記に詳細記載)
  7. 全て上書きアップロード
  8. ダッシュボードのURLにアクセスして管理権限を持つユーザでログインする

コメント表示用のWidgetに関する修正

恐らくそのままWPを利用している場合には関係ない項目です。application/xml+htmlでページを配信している場合には、構文エラーで正常に表示できなくなるので修正が必要です。

原因は関数 wp_widget_recent_comments の中で get_comment_link($comment->comment_ID) が返してくる値の中に “&” が入っている事。これを “&amp;” とはくようにして置かないと構文解析エラーとなるわけです。今回は応急処置みたいなものなので、本当ならばじっくり対処する必要があるのかも?

修正箇所については上記の部分を htmlentities() を使って変換してやります。diff の結果は次の通り。

% diff widgets.php.org widgets.php | more
1401c1401
<                       echo  '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_co
mment_author_link(), '<a href="'. get_comment_link($comment->comment_ID) . '">' . get_the_title(
$comment->comment_post_ID) . '</a>') . '</li>';
---
>                       echo  '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_co
mment_author_link(), '<a href="' . htmlentities(get_comment_link($comment->comment_ID)) . '">' .
 get_the_title($comment->comment_post_ID) . '</a>') . '</li>';

今のところ正常に動作中です。

WP2.5: タグクラウドの表示上限を上げる

wp-includes/category-template.php に対するモディフィケーションです。修正前後の diff は次の通り。

% diff category-template.php category-template.php.org
336,341c336
< // ++ del 2008-04-21
< //            'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
< // -- del 2008-04-21
< // ++ add 2008-04-21
<               'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 999,
< // -- add 2008-04-21
---
>               'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,

要は number の値に設定されている45を999に設定する事で上限値を上げているというわけです。100個までの表示の場合には100に設定すれば良いわけですね。最大・最小のフォントサイズもここでコントロールできるのでお試しあれ。

追記 2008-01-02

上記の該当箇所が文字列検索だと2箇所あるんですよね。該当箇所は “wp_tag_cloud” の関数定義箇所です。お間違いなく。