雑記ブログなど、幅広いジャンルでサイトを運営している場合、サイト名も分かりやすい方が検索した人も見たいと思いますよね?
例えば、当サイトはサイト名が「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;
}
設定が終わったら、各カテゴリーページと記事ページでページタイトル及びサイトタイトルが変わっていることを確認します。
ブックマークに追加してみると変更されているかどうか分かりやすいです。

カテゴリー毎に表示中のページタイトルとサイトタイトルを変更する方法の解説は以上です。
お疲れ様でした。
参考サイト

