今回は、WordPressでtitleタグの中にタイトルを出力する方法です。
古いやり方(非推奨)
以前は、タイトルを出力するために、wp_titleという関数を使っていました。
<title><?php wp_title( '|', true, 'right' ); ?><?php bloginfo( 'name' ); ?></title>
しかし、こちらの関数はWordPress4.4以降では非推奨となっています。
新しいやり方
4.4以降でタイトルを出力するには、functions.phpに以下のコードを追加します。
add_theme_support( 'title-tag' );
これで、wp_head()で自動的にタイトルが出力されるようになります。
タイトルのカスタマイズ
出力するタイトルをカスタマイズすることもできます。
通常は、「タイトル – サイト名」と出力されます。「-」を「|」に変更したい場合は、functions.phpに以下のコードを追加します。
function wp_document_title_separator( $separator ) {
$separator = '|';
return $separator;
}
add_filter( 'document_title_separator', 'wp_document_title_separator' );
当サイトでは、以下のようにカスタマイズしています。
function wp_document_title_parts( $title ) {
if ( is_home() || is_front_page() ) {
unset( $title['tagline'] ); // キャッチフレーズを出力しない
} else if ( is_category() ) {
$title['title'] = '「' . $title['title'] . '」カテゴリーの記事一覧';
} else if ( is_tag() ) {
$title['title'] = '「' . $title['title'] . '」タグの記事一覧';
} else if ( is_archive() ) {
$title['title'] = $title['title'] . 'の記事一覧';
}
return $title;
}
add_filter( 'document_title_parts', 'wp_document_title_parts', 10, 1 );
カテゴリーやタグページ、アーカイブページのタイトルが少し分かりにくいのでカスタマイズしました。
unset( $title[‘tagline’] )はトップページでキャッチフレーズを出力しないようにするための処理です。
参考にしてみて下さい。