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

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.phpadd_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制作事務所です。
お気軽にご相談・お問い合わせください。