雑記ブログなど、幅広いジャンルでサイトを運営している場合、サイト名も分かりやすい方が検索した人も見たいと思いますよね?
例えば、当サイトはサイト名が「D’s World」ですが、名前だけ見ても何のサイトか分かりづらいです。しかし、サイト内のWordPressカテゴリーページを開くと、サイト名が「WordPress攻略ブログ」に変わります。
見たいと思わせるちょっとした工夫が、SEOにも大きく関わってきます。
このページでは、WordPressテーマの「Cocoon」で『カテゴリー毎に表示中のページタイトルとサイトタイトルを変更する方法』について、貼り付けるコードとカスタマイズする方法を解説していきます。
※Cocoon以外でも対応可能だと思いますが、修正が必要かもしれません。
貼り付けるコードとカスタマイズ方法
貼り付けるコードは長いですが、カスタマイズ方法さえ分かればタイトル変更は簡単です。
コードと貼り付け場所
まず、以下のコードを丸ごと子テーマのfunctions.phpに貼り付けます。
// カテゴリー毎に表示中のページタイトル・サイトタイトルのカスタマイズ function title_parts_custom( $title ){ $site_name = trim( get_bloginfo('name') ); $title['tagline'] = ''; if(is_front_page()){ //フロントページ //自由形式タイトルの場合 if (is_free_front_page_title()) { $title['title'] = esc_html( get_free_front_page_title() ); } else {//自由形式でないとき $title['title'] = $site_name; $title['site'] = ''; if ( is_tagline_to_front_page_title() )://キャッチフレーズを追加する場合 $title['tagline'] = trim( get_bloginfo('description') ); endif; } } elseif (is_singular()) { //投稿・固定ページ $title['title'] = trim( get_the_title() ); //SEO向けのタイトルが設定されているとき if (get_the_page_seo_title()) { $title['title'] = get_the_page_seo_title(); } $title['site'] = ''; if ($simplified_site_name = get_simplified_site_name()) { $site_name = $simplified_site_name; } switch (get_singular_page_title_format()) { case 'pagetitle_sitename': $title['site'] = $site_name; break; case 'sitename_pagetitle': $title['title'] = $site_name; $title['site'] = trim( get_the_title() ); break; } if(!empty($_GET[id]) && (!empty($_POST[card_name_title]))) { $title['title'] = $_POST[card_name_title]; } else { $title['title'] = trim( get_the_title() ); } $cat = get_the_category(); $cat = $cat[0]; $cat_id = $cat->cat_ID; $findFlg = true; $title = setNewTitle($title, $cat_id, $findFlg); if ($findFlg == false) { $title['site'] = $site_name; } } elseif (is_category()) { //カテゴリー $cat_id = get_query_var('cat'); $cat_name = $title['title']; $title['title'] = '記事一覧'; // カテゴリーページで表示するページタイトル $findFlg = true; $title = setNewTitle($title, $cat_id, $findFlg); if ($findFlg == false) { $title['site'] = $site_name; $title['title']= $cat_name; } } elseif (is_404()) { $title['title'] = get_404_page_title(); }; return $title; } // 表示タイトルの設定 function setNewTitle( $title, $cat_id, &$findFlg ) { // 該当するカテゴリーIDのタイトルを設定する if ($cat_id == 815) { $title['site'] = 'WordPress攻略ブログ'; } elseif ($cat_id == 774) { $title['site'] = 'アフィリエイト攻略ブログ'; } elseif ($cat_id == 233 || post_is_in_descendant_category(233)) { $title['site'] = 'ドラクエライバルズ攻略'; } else { $findFlg = false; } return $title; } // 渡された親カテゴリーIDの子カテゴリーかどうか function post_is_in_descendant_category( $cats, $_post = null ){ foreach ( (array) $cats as $cat ) { $descendants = get_term_children( (int) $cat, 'category'); if ( $descendants && in_category( $descendants, $_post ) ) return true; } return false; }
カスタマイズの解説
カテゴリーページで表示するページタイトルは以下のコードの場所で修正できます。
変更する場合は「記事一覧」の部分を好きなタイトルに変えてください。
$title['title'] = '記事一覧'; // カテゴリーページで表示するページタイトル
カテゴリーページ及び各記事ページでのサイトタイトルの変更は「setNewTitle」メソッド内で修正できます。
修正するにはまず、サイトタイトルを変更したいカテゴリーのIDを調べます。
カテゴリーIDは、カテゴリーの編集ページでURLの『tag_ID』から確認ができます。
画像では、『フリーランス』のカテゴリーIDは『811』と確認できます。
カテゴリーIDを確認したら、setNewTitleメソッド内でカテゴリーIDと表示するサイトタイトルを修正していきます。
// 該当するカテゴリーIDのタイトルを設定する if ($cat_id == 815) { $title['site'] = 'WordPress攻略ブログ'; } elseif ($cat_id == 774) { $title['site'] = 'アフィリエイト攻略ブログ'; } elseif ($cat_id == 233 || post_is_in_descendant_category(233)) { $title['site'] = 'ドラクエライバルズ攻略';
「$cat_id == 815」の番号の部分を確認したカテゴリーIDに変更します。
その後、「WordPress攻略ブログ」の部分を表示したいサイトタイトルに変更します。
同様に次の行の「$cat_id == 774」の部分と「アフィリエイト攻略ブログ」の部分にも設定していきます。必要なカテゴリーの分だけ以下の2行をコピーして増やします。
} elseif ($cat_id == 774) { $title['site'] = 'アフィリエイト攻略ブログ';
以下のコードは、指定したカテゴリーIDの子カテゴリーにも同じサイトタイトルを設定できます。
} elseif ($cat_id == 233 || post_is_in_descendant_category(233)) { $title['site'] = 'ドラクエライバルズ攻略';
「$cat_id == 233」と「post_is_in_descendant_category(233)」の数字の部分に同じカテゴリーIDを指定してください。必要であれば必要な分だけコピーを、必要がなければ削除してください。
文章の説明だけですと分かりづらいかと思いましたので、setNewTitleメソッド内で実際に私の設定しているコードを載せておきます。
// 表示タイトルの設定 function setNewTitle( $title, $cat_id, &$findFlg ) { if ($cat_id == 811) { $title['site'] = 'フリーランス攻略ブログ'; } elseif ($cat_id == 815) { $title['site'] = 'WordPress攻略ブログ'; } elseif ($cat_id == 774) { $title['site'] = 'アフィリエイト攻略ブログ'; } elseif ($cat_id == 833) { $title['site'] = '退職前に見てほしいブログ'; } elseif ($cat_id == 822) { $title['site'] = 'ビジネスブログ'; } elseif ($cat_id == 39) { $title['site'] = 'IT・ガジェット情報'; } elseif ($cat_id == 823) { $title['site'] = 'ゲームニュース'; } elseif ($cat_id == 695) { $title['site'] = 'FORTNITE攻略'; } elseif ($cat_id == 233 || post_is_in_descendant_category(233)) { $title['site'] = 'ドラクエライバルズ攻略'; } elseif ($cat_id == 101 || post_is_in_descendant_category(101)) { $title['site'] = 'シャドバ攻略'; } elseif ($cat_id == 65) { $title['site'] = 'ドラクエブログ'; } elseif ($cat_id == 198) { $title['site'] = 'FFブログ'; } elseif ($cat_id == 27) { $title['site'] = 'サガブログ'; } elseif ($cat_id == 110) { $title['site'] = 'モンハンワールド攻略'; } elseif ($cat_id == 409) { $title['site'] = 'ゲーム評価・感想・レビューブログ'; } elseif ($cat_id == 751) { $title['site'] = 'ゲーム情報ブログ'; } elseif ($cat_id == 867) { $title['site'] = '速うまシューターブログ'; } elseif ($cat_id == 863) { $title['site'] = '競馬ブログ'; } elseif ($cat_id == 20) { $title['site'] = '将棋情報'; } elseif ($cat_id == 91) { $title['site'] = 'エンターテインメント情報'; } elseif ($cat_id == 812) { $title['site'] = '楽しく生きるための思考法'; } else { $findFlg = false; } return $title; }
設定が終わったら、各カテゴリーページと記事ページでページタイトル及びサイトタイトルが変わっていることを確認します。
ブックマークに追加してみると変更されているかどうか分かりやすいです。
カテゴリー毎に表示中のページタイトルとサイトタイトルを変更する方法の解説は以上です。
お疲れ様でした。
参考サイト