WordPressでtitleタグの出力内容を制御する。分岐やカスタマイズいろいろ。

WordPressでタイトルタグの出力内容をカスタマイズする方法について忘れがちなのでメモしておこうと思います。
ページによるタイトルの出し方や、セパレータ(区切り記号)の編集、サイトネームの出し方などもろもろ編集することが出来ます。

document_title_partsをカスタマイズする。

まずはtitleタグを出力するために下記のお約束をfunction.phpに記述します。

add_theme_support('title-tag');

そして出力されるtitleタグの内容をカスタマイズするにはdocument_title_partsに対して下記の処理を加えることにします。
document_title_partsがどんな情報を持っているかといえば、
・’title’ … 文字通りそのページのタイトル。
・’page’ … ページ番号。
・’tagline’ … 設定で入力されているキャッチフレーズ。要はdescription。
・’site’ … 設定で入力されているサイトネーム。
の4つになります。
参考はこちら

function.phpに追加する内容はこんな感じです。

function customizeTitle($title) {
  // キャッチフレーズをタイトルタグに含めることはあまりないのでunset。
  unset($title['tagline']);

  // あまり変更はしないかもだけどサイトネームもここでカスタマイズ出来ます。
  $title['site'] = '任意のサイトネーム';

  //ページごとの分岐
  if(is_home()){
    // トップで使う処理があれば。
  }else if(is_archive()){
    // アーカイブ分岐
    $title['title'] = $title['title'].'アーカイブ';
  }else if(is_single()){
    // 個別記事の分岐
    $title['title'] = $title['title'].'の個別記事';
  }
  return $title;
}
// 第3、4引数の10,1はとりあえず初期値を入れています。
add_filter('document_title_parts','customizeTitle');

// タイトルとサイトネームを区切るセパレータはデフォルトでは'-'なので任意に変更する。
function customizeSeparator($separator) {
  $separator = '|';
  return $separator;
}
add_filter('document_title_separator','customizeSeparator');

これらを設定すればタイトルタグの出力は思い通りにコントロール出来るかと思います。


WordPressレッスンブック HTML5&CSS準拠