【Cocoon】カテゴリー毎に表示中のページタイトルとサイトタイトルを変更する方法

雑記ブログなど、幅広いジャンルでサイトを運営している場合、サイト名も分かりやすい方が検索した人も見たいと思いますよね?

例えば、当サイトはサイト名が「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;
}

 

設定が終わったら、各カテゴリーページと記事ページでページタイトル及びサイトタイトルが変わっていることを確認します。
ブックマークに追加してみると変更されているかどうか分かりやすいです。

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

 

参考サイト

カテゴリー毎に表示中のページのタイトルを変更したい
現状、投稿ページを表示すると、『ページタイトル|サイト名』のような感じに表示されます。これを、表示したページのカテゴリーが「ゲーム」の場合、 『ページタイトル|ゲーム情報』などのようにサイト名の部分を表示中ページのカテゴリー毎に変更できるようにしたいのですが、どのようにしたらよろしいでしょうか? お...
https://ri-mode.com/memo/2013/07/24/category_parent_descendant/
 
スポンサーリンク