wordpress4.4以降からのtitleタグ設定

今までの設定方法

以下のように記載し、タイトルタグ間のセパレーターは第一引数に指定して表示させていました

<title>
  <?php wp_title( '--', true, 'right' ); ?>
</title>

 

4.4系以降から

新しい関数が自動生成することでtitleタグが追加されるようになりました
実装方法はfunctions.phpに以下のように記載します

function theme_slug_setup() {
  add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'theme_slug_setup' );

 

カスタマイズ方法

セパレーターを変更したい場合functions.phpに以下のように記載します

function custom_title_separator($sep) {
  $separator = '|'; // セパレーターに表示したい文字列
  return $separator;
}
add_filter( 'document_title_separator', 'custom_title_separator' );

 

上記のように記載するとtitleタグの中身は
サイトタイトル – タグライン(サイトディスクリプション)となります
タグラインが必要ない場合は以下のように記載します

タグラインをtitleタグから削除したい場合

function wp_document_title_parts ( $title ) {
  unset( $title['tagline'] );
  return $title;
}
add_filter( 'document_title_parts', 'wp_document_title_parts', 10, 1 );

 

記事一覧ページなどページネーションするページでtitleタグからページ情報を削除したい場合は以下のように記載します

function wp_document_title_parts ( $title ) {
  unset( $title['tagline'] );
  unset( $title['page'] ); // 追加したコード ページ情報をタイトルタグから削除する
  return $title;
}
add_filter( 'document_title_parts', 'wp_document_title_parts', 10, 1 );

 

同様に削除できる項目の一覧は以下の通りです
削除したい項目に合わせて、追加してください

unset( $title['tagline'] ); // タグライン
unset( $title['page'] ); // ページ情報
unset( $title['site'] ); // サイトタイトル
unset( $title['title'] ); // ページタイトル

 

条件によって変更したい場合

こちらは他の関数と同様の条件分岐で追加できます

function wp_document_title_parts ( $title ) {
  if(is_404()): //404ページの場合
  $title['title'] = 'お探しのページは見つかりませんでした';
  endif;

  return $title;
}
add_filter( 'document_title_parts', 'wp_document_title_parts', 10, 1 );

 

参考サイト

WordPress Codex