WordPressで自動出力されるタイトル系のカスタマイズ方法まとめ

WordPressが自動で出力するタイトルタグやアーカイブタイトルは「カテゴリー:〇〇」や「アーカイブ:〇〇」など、ダサくなりがちです。

WordPressが出力するタイトルをカスタマイズする方法をまとめましたので、変更したい方は参考にしてください!

タイトルタグ:title-tag

WordPress4.4からタイトルタグは<head>タグ内に記載しなくても、functions.phpに以下の記述をすれば、WordPressが標準で表示してくれるようになりました。

functions.phpadd_theme_support( 'title-tag' );

カスタマイズする方法は以下のとおりです。

functions.phpfunction change_title_tag( $title ) {

	if ( is_category() ) { /* カテゴリーアーカイブの場合 */
		$title = single_cat_title( '', false );
	} elseif ( is_tag() ) { /* タグアーカイブの場合 */
		$title = single_tag_title( '', false );
	} elseif ( is_post_type_archive( 'parts' ) ) { /* parts投稿タイプのアーカイブの場合 */
		$title = '任意のタイトル';
	}
  return $title;
}
add_filter( 'pre_get_document_title', 'change_title_tag' );

Codex:pre_get_document_title | Hook | WordPress Developer Resources

タイトルタグ(旧):wp_title

WordPress4.4以降からwp_title()によるタイトルタグの出力は非推奨になっているのですが、古いテーマでは未だに使われています。

そういったテーマをカスタマイズする機会もまだ多くあると思うので、wp_title()のカスタマイズ方法も見ておきましょう。

functions.phpfunction change_old_title_tag( $title, $sep ) {

	if ( is_category() ) { /* カテゴリーアーカイブの場合 */
		$title = single_cat_title( '', false );
	} elseif ( is_tag() ) { /* タグアーカイブの場合 */
		$title = single_tag_title( '', false );
	} elseif ( is_post_type_archive( 'parts' ) ) { /* parts投稿タイプのアーカイブの場合 */
		$title = '任意のタイトル';
	}
  return $title;
}
add_filter( 'wp_title', 'change_old_title_tag' );

Codex:テンプレートタグ/wp title – WordPress Codex 日本語版

タイトルタグ(All in One SEO)

ちょっとハマったので、こちらも共有です。
プラグイン「All in One SEO」を使用している場合は、pre_get_document_title()効きません!(詳しくは調べてないですが、たぶんAll in One SEOの処理で上書きされてる)

「All in One SEO」のフィルターフックを使って書き換えてあげる必要があります。

functions.phpfunction change_aioseop_title( $title ) {

  if ( is_category() ) { /* カテゴリーアーカイブの場合 */
    $title = single_cat_title( '', false );
  } elseif ( is_tag() ) { /* タグアーカイブの場合 */
    $title = single_tag_title( '', false );
  } elseif ( is_post_type_archive( 'parts' ) ) { /* parts投稿タイプのアーカイブの場合 */
    $title = '任意のタイトル';
  }
}
add_filter( 'aioseop_title', 'change_aioseop_title' );

アーカイブのタイトル:the_archive_title

the_archive_titleはWordPressの一覧ページでh1に相当するようなタイトルを取得する際に使用される関数です。
Codex:関数リファレンス/the archive title – WordPress Codex 日本語版

「カテゴリー:〇〇」や「アーカイブ:〇〇」という出力結果になるので、カスタマイズしたくなりがちです。

functions.phpfunction change_archive_title( $title ) {

	if ( is_category() ) { /* カテゴリーアーカイブの場合 */
		$title = single_cat_title( '', false );
	} elseif ( is_tag() ) { /* タグアーカイブの場合 */
		$title = single_tag_title( '', false );
	} elseif ( is_tax( 'event', 'hover' ) ) { /* タームアーカイブの場合(eventタクソノミー、hoverターム) */
		$title = single_term_title( "", false );
	} elseif ( is_post_type_archive( 'parts' ) ) {
		$title = post_type_archive_title( "", false ); /* parts投稿タイプのアーカイブの場合 */
	}
	return $title;
};
add_filter( 'get_the_archive_title', 'change_archive_title' );

個別記事:the_title

個別記事のタイトルを出力するthe_title()。あまりカスマイズする機会はないかもしれませんが、以下のような感じでカスタマイズすることは可能です。

functions.phpfunction change_page_title( $title ) {
	global $post;
	if ( $post->ID == 10 ) {
		$title = '任意のタイトル';
	}
	return $title;
}
add_filter( 'the_title','change_page_title' );

テンプレートタグ/the title – WordPress Codex 日本語版

このページが役に立ったら
いいね!お願いします

運営の励みになります...。

関連の記事