-- きっとこれで終わる追記
本家のフォーラムで,
パッチを作ってもらえました.
えがった,えがった.
general-tempate.php に,linkタグの出力があったんだなぁ…
-- 追記
フォーラムで報告したところ,もう少しスマートな方法をご紹介いただいた.
でももう眠いので,また今度ためします.
フォーラムの該当記事はこちら→サイト内検索時のRSSフィードのURL出力について
-- 元の記事
これはハマった.
ちなみに,application/xhtml+xml は,IE8以前では認識されないため,IE8以前向けには出力していません.確認をしたい方は,firefoxとか使ってください.IE9もイイヨ.
- 症状
- wordpressの出力のMIME-TYPEをapplication/xhtml+xmlとすると,サイト内の検索結果が表示されない.
- 原因
- 検索結果画面のlinkタグ内のURL内のセパレータに `&' ではなく,`&' が使われているため,XMLパースエラーを起こす.
- 対処
-
wordpressのインストール先ディレクトリを ``/wp_blog`` とした時に,
``/wp_blog/wp-includes/link-templete.php`` の L.796付近,及びL.825 付近 (wordpress 3.1.2 の場合) にある次のソース,
``$link = apply_filters('search_feed_link', $link, $feed, 'posts');``
で出力されるURLが,他の部分と異なり `&' と出力すべきセパレータを, `&' と出力してしまう.
本来ならば,search_feed_link というキーで適用されるフィルタか何かを修正したいが,ソース内を検索しても見付からないので,このソースを該当行の次の行に埋め込むことで対処する.$link = str_replace('&','&',$link); ...(略) $link = str_replace('&','&',$link);