具体的には
1 |
<title>ブログ移転しました最近,気になったこと... | 最近,気になったこと...</title> |
のようにタイトルが重複してしまうんです…
先日 RSS フィードのタイトルの問題は直したのに、ブログエントリをフィードしていただいた時に変な引用になっていたのです。
代助さん (@hondamarlboro) から、<title>タグの無いようがおかしいと教えていただいて調べてみました。プラグインが怪しいので最も思い当たる All in One SEO を無効にしたところ現象は収まりました。
原因を調べるために少し追いかけてみたのですが、だいぶ複雑な問題がありました。
All in One SEOは何をしているのか
All in One SEO はタイトルを変更する機能を持っています。ここで指定している %post_title% | %blog_title% という書き方だと
1 |
<title>ブログ移転しました | 最近,気になったこと...</title> |
となることを期待するわけですが、実際は最初に書いたように
1 |
<title>ブログ移転しました最近,気になったこと... | 最近,気になったこと...</title> |
となってしまいます。そこで、 %post_title% のみにしてみると
1 |
<title>ブログ移転しました最近,気になったこと...</title> |
となります。つまり、 %post_titile% 自体がおかしいということです。
All in One SEO のソースを見てみたところ aioseop.class.php の中の rewrite_title でタイトルを色々加工しているようですが wp_title から取ってきている値を使っているだけのようです。ということは、そもそも wp_title がおかしくなっている?という可能性があります。
テーマの機能とのコンフリクトだった
ここで、ふと思い当たったのがテーマです。いま使っている BirdTips というテーマはタイトルを書き換えてブログ名を追加してくれていたはずです。試しに テーマ を TwentyTen に変えてみたところ All in One SEO を有効にしていても問題は発生しません。
あとは BirdTips が何をやっているかを調べれば良いので functions.php を調べてみたところ、
392 393 394 395 396 397 398 399 400 401 402 403 404 405 |
function birdtips_title( $title ) { global $page, $paged; $title .= get_bloginfo( 'name' ); $site_description = get_bloginfo( 'description', 'display' ); if ( $site_description && ( is_home() || is_front_page() ) ) $title .= " | $site_description"; if ( $paged >= 2 || $page >= 2 ) $title .= ' | ' . sprintf( __( 'Page %s', 'birdtips' ), max( $paged, $page ) ); return $title; } |
ここで書き換えています。この書き換えが先に走ってから All in One SEO が走るので、意図しない変換をしてしまってあのような結果になっているんですね。
今は、All in One SEO のタイトル書き換えを Off にして運用していますが、将来、On にしたくなった時のために、修正する方法を探してみました。
タイトルの書き換えを All in One SEO に任せるのであれば、テーマでの書き換えをしないようにすれば良い、ということで Action Hook でタイトルを入れ替えているフィルタをコメントアウトすれば良さそうですね。
419 420 421 422 423 424 425 426 |
////////////////////////////////////////////////////// // Action Hook add_action( 'widgets_init', 'birdtips_widgets_init' ); add_action( 'after_setup_theme', 'birdtips_setup' ); add_action( 'wp_enqueue_scripts', 'birdtips_scripts' ); add_filter( 'get_search_form', 'birdtips_search_form' ); // add_filter( 'wp_title', 'birdtips_title' ); add_theme_support( 'automatic-feed-links' ); |
どちらが悪いということではなく相性の問題ですが、このあたりが WordPress の難しいところですね。
先日のRSSのタイトル2重問題もテーマが影響していた
ここでふと思ったことが…先日の RSS 問題ももしかして、この関係なのか?と思って、フィルタをコメントアウトして試してみたところ ビンゴ でした。最終的に、どう直すかはもう少しコードを追ってじっくり考えないといけなさそうな感じです。テーマ変更や今後のバージョンアップを考えたら、テーマの方を直すのが正しい気がするので、その方向で検討してみます。
WordPress 関連のエントリ
インストールや設定変更とデータ移行
プラグイン
バージョンアップ
カスタマイズ
Stinger 3関連
チューニング
MAMPを使ったバックアップサイトの構築
開発関連
最後まで読んでいただきありがとうございます。
左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです
Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします
RSSリーダへの登録は こちら からどうぞ。