WordPress4.4以降でtitleタグをカスタマイズする方法

WordPress4.4以降は、それ以前までにタイトルを生成する為に使用されていたwp_title
関数を使用して生成する方法が非推奨となりました。それに代わって新たにwp_get_document_title
と言う関数が登場し、カスタマイズ方法もこれまでと変わりました。
目次
これまでのtitleの記述方法
これまでtitle
タグは前述のwp_title
関数を使用して以下のように記述していました。
<title><?php wp_title( '|', true, 'right' ); ?></title>
WordPress4.4以降のtitleの記述方法
しかし、WordPress4.4以降はfunctions.php
にadd_theme_support( 'title-tag' );
と記述をするだけでタイトルを出力してくれるようになりました。
<?php
add_theme_support( 'title-tag' );
デフォルトだとトップページではページタイトル – サイトのディスクリプション、それ以外のページではページタイトル – サイト名のように出力されます。
titleタグのカスタマイズ
title
タグの出力はカスタマイズが可能で、以下に紹介する3つのフィルターフックを使用することでコントロールします。
wp_get_document_title関数のフィルターフック
pre_get_document_title
titleタグで出力される内容を全部変更したい場合、このフィルターを使用します。
<?php
add_filter( 'pre_get_document_title', 'my_pre_get_document_title' );
function my_pre_get_document_title( $title ) {
if ( is_category( 'wordpress' ) ) {
$title = '変更後のタイトル';
}
return $title;
}
document_title_separator
タイトルとサイト名を区切っているセパレーターのみを変更したい場合に使用します。
<?php
add_filter( 'document_title_separator', 'my_document_title_separator' );
function my_document_title_separator( $sep ) {
$sep = '|';
return $sep;
}
document_title_parts
タイトルだけを変更したい場合などに使用します。このフィルターの値は、連想配列となっているので注意してください。
$title['title']
– ページタイトル$title['page']
– 現在閲覧しているページのページ数$title['tagline']
– サイトのディスクリプション$title['site']
– サイト名
例として、デフォルトのページタイトル – サイトのディスクリプションのサイトのディスクリプションを削除する方法をご紹介します。
<?php
add_filter( 'document_title_parts', 'remove_title_description', 10, 1 );
function remove_title_description ( $title ) {
if ( is_home() || is_front_page() ) {
unset( $title['tagline'] );
}
return $title;
}
私たちGlatchはコーポレートサイト制作を得意とするWeb制作事務所です。
お気軽にご相談・お問い合わせください。