Kaketan::Tech

誰かのためになるかもしれないテックなことに関するメモを書いています。

【WordPress 4.4+】ページによってタイトルを細かく切り替え・変更する方法【PHP】

困っていること

前提

SEO を考慮してタイトル自身を description を含めた かけたんdiary|絶対に知っておくべき最新の情報をあなたにお届けします! のようなタイトルに設定している。

問題

このようにタイトルを設定したときは、個別ページのタイトルタグの要素の内容( <title>要素の内容</title>)が次のようになる

【最新まとめ】2018年に購入すべき神Amazonグッズ15選! - かけたんdiary|絶対に知っておくべき最新の情報をあなたにお届けします!

これは SEO 的に文字数が長すぎるとされている。(ほとんどの検索エンジンは最大60文字を タイトル に使用するため)

やること

したがって次のようにしたい。

  • Homeのときのタイトル
    • かけたんdiary|絶対に知っておくべき最新の情報をあなたにお届けします!
  • 個別ページのときのタイトル
    • 【最新まとめ】2018年に購入すべき神Amazonグッズ15選! - かけたんdiary

解決策

wp-includes/general-template.phpwp_get_document_title() 関数の次の箇所を変更する。

         if ( is_front_page() ) {
                $title['tagline'] = get_bloginfo( 'description', 'display' );
-        } else {
-              $title['site'] = get_bloginfo( 'name', 'display' );
-        }
+        } // else {
+        //      $title['site'] = get_bloginfo( 'name', 'display' );
+        //}
+        if ( !is_home() ) {
+                $title['site'] = 'かけたんdiary';
+        }

$title['site'] = get_bloginfo( 'name', 'display' ); してしまっているのが今回期待していないことなので、Home 以外では後ろになにをくっつけるかを書く。

後記

get_bloginfo( 'name', 'display' ) には かけたんdiary を設定してしまって、Home 限定で description をがっちゃんこして title タグの要素の内容をつくるみたいな実装にしたほうがきれいになるかもね。 どっちが楽かはわからないですが・・・