【WordPress】titleの区切り表示を「−」から「|」に変更する方法

WordPressのタイトル出力のデフォルトは「タイトル − サイト名」で、区切りが「−」。
「|」など、変更したい区切り文字にするため、functions.phpに下記コードを記述すると、タイトルのセパレートを変更できる。

/* title出力 */
add_theme_support( 'title-tag' ); //add_theme_supportを有効化

/* titleの区切り文字を「-」から「|」に書き換え */
function rewrite_separator( $separator ) {
$separator = '|'; 
return $separator;
}
add_filter( 'document_title_separator', 'rewrite_separator' );

タイトルタグのカスタムとかいろいろ

古い(非推奨)書き方

WordPress4.4以降では非推奨になった、wp_titleという関数を使った書き方。
header.phpに記述していた。

<title><?php wp_title( '|', true, 'right' ); ?><?php bloginfo( 'name' ); ?></title>

出力されるHTMLはこんなかんじ。

<title>記事タイトル | サイト名</title>

新しい書き方

今はfunction.phpに記述する。header.phpに「<title></title>」は記述しない。
もしheader.phpに記述すると二重に表示されてしまうので注意。
下記コードを記述すると自動でタイトル表示される。

add_theme_support( 'title-tag' );

これだけの記述だとHTMLでの表示は下記のようになる。

<title>記事タイトル − サイト名</title>

区切りが「−」なのはイヤ!よく見る「|」にしたい!
と思ったら、function.phpに下記コードを追記すればOK。(一番上に記述してるコードと同じ)

function rewrite_separator( $separator ) {
$separator = '|'; 
return $separator;
}
add_filter( 'document_title_separator', 'rewrite_separator' );

各ページで表示させたいタイトルにカスタマイズ

さらに各ページで表示させたいタイトルにカスタマイズもできる。
トップページでキャッチフレーズを出力しないようにしたり、カテゴリーやタグページ、アーカイブページのタイトルを変更とかとか。

function rewrite_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', 'rewrite_title_parts', 10, 1 );

参考サイト:【WordPress】wp_titleは非推奨!titleタグにタイトルを出力する方法

ABOUT US
yukipan
Web制作会社で働いてます。パンダとかリラックマとか、まあるいものが好き。好奇心旺盛で、何にでも興味をもってしまう。とりあえずやってみてから取捨選択するのがモットー。今はグリーンカレーとチャイと株式投資がブーム。