WordPress4.4からタイトルタグを出力する方法が変わりました。
それにより、タイトルタグ(<title></title>)出力方法が以前とかなり変わってしまったため、変更する方法メモがてら紹介です。
目次
タイトルの変更方法
まず、出力されるタイトルタグの変更方法を最もシンプルな形で書くと以下のようになります。
//Wordpress4.4以上でのタイトルカスタマイズ function change_document_title_parts( $title_parts ){ $title_parts['title'] = 'タイトル'; $title_parts['tagline'] = 'タグライン(キャッチコピー的なもの)'; $title_parts['site'] = 'サイト名'; return $title_parts; } add_filter( 'document_title_parts', 'change_document_title_parts' );
このコードをfunctions.phpに貼り付け、サイトを表示させると以下のようなタイトルが出力されます。
タイトル - タグライン(キャッチコピー的なもの) - サイト名
[タイトル] [セパレーター] [タグライン] [セパレーター] [[サイト名]みたいな並びで表示されます。
タイトルとサイト名のみを表示する
「タグラインは不要」なんて場合は、以下のように連想配列に空文字を挿入してやります。
//Wordpress4.4以上でのタイトルカスタマイズ function change_document_title_parts( $title_parts ){ $title_parts['title'] = 'タイトル'; $title_parts['tagline'] = ''; $title_parts['site'] = 'サイト名'; return $title_parts; } add_filter( 'document_title_parts', 'change_document_title_parts' );
すると、以下のように余分なセパレーターも除去されて表示されます。
タイトル - サイト名
[タイトル] [セパレーター] [[サイト名]の並びになります。
ページによってタイトルを変更する場合
WordPressのフロントページ、投稿ページ、固定ページ、アーカイブ、検索結果画面などで、それぞれタイトルを変更する場合は、以下のように記入します。
//Wordpress4.4以上でのタイトルカスタマイズ function change_document_title_parts( $title_parts ){ //デフォルトとしてタグラインとサイト名は表示しないようにセット $title_parts['tagline'] = ''; $title_parts['site'] = ''; $site_name = trim( get_bloginfo('name') ); $title_parts['tagline'] = ''; if(is_front_page()): //フロントページの場合 $title_parts['title'] = $site_name; $title_parts['site'] = ''; $title_parts['tagline'] = trim( get_bloginfo('description') ); elseif(is_singular()): //投稿ページの場合 $title_parts['title'] = trim( get_the_title() ); $title_parts['site'] = $site_name; elseif(is_archive()): //アーカイブページの場合 $title_parts['title'] = '「'.$title_parts['title'].'」のアーカイブ'; elseif(is_search()): //検索結果ページの場合 $title_parts['title'] = $title_parts['title']; elseif(is_404()): //404ページの場合 $title_parts['title'] = 'お探しのページは見つかりませんでした'; endif; return $title_parts; } add_filter( 'document_title_parts', 'change_document_title_parts' );
上記のように、タイトルを変更したいページに対して条件分岐を行い、タイトルパーツをセットしてやれば自由にタイトルを変更することができます。
その他に利用できる条件分岐タグについては以下を参照してください。
参考 条件分岐タグ – WordPress Codex 日本語版
タイトルのセパレーターを変更する
WordPressデフォルトのセパレーターは「 – 」になっています。
これを「 | 」変更したい場合は以下のように変更します。
//Wordpress4.4以上でのタイトルセパレーターの設定 function change_title_separator( $sep ){ $sep = ' | '; return $sep; } add_filter( 'document_title_separator', 'change_title_separator' ); //Wordpress4.4以上でのタイトルカスタマイズ function change_document_title_parts( $title_parts ){ $title_parts['title'] = 'タイトル'; $title_parts['tagline'] = 'タグライン(キャッチコピー的なもの)'; $title_parts['site'] = 'サイト名'; return $title_parts; } add_filter( 'document_title_parts', 'change_document_title_parts' );
上記コードをfunctions.phpに貼り付けて実行すると、以下のようなタイトルが出力されます。
タイトル | タグライン(キャッチコピー的なもの) | サイト名
まとめ
WordPress4.4より新しくなったタイトル変更方法は、タイトルパーツ連想配列のtitle、tagline、siteキーにそれぞれ値を指定してやる必要があり少しややこしいかもしれません。
しかし、そこさえ押さえてしまえば、タイトル部品ごとにテキストを指定できるので、以前より使いやすくなったといえるかもしれません。
というわけで「Wordpressでタイトルタグの出力を好みにカスタマイズしたい」とか「タイトルのセパレーターを変更したい」なんて場合は、上記コードをコピペして少し編集してやれば、ある程度思い通りのタイトルになるかと思います。