WordPressのタイトルセパレーターを変更するやり方を説明します。
使用しているWordPressテーマのfunctions.phpでタイトルを出力させてから、WordPressがデフォルトで表示するタイトルセパレーターのハイフン「-」を、パイプ「|」の区切り文字に変更するやり方です。
WordPressのタイトルセパレーターとは
titleタグで出力されるWordPressのタイトルとキャッチフレーズの間に表示する「-」や「|」を区切り文字と言います。
WordPressのタイトルセパレーターとは「-」や「|」の区切り文字のことです。
「-」も「|」も、文字としての扱いではなく単語を区切る役割があり、文字として考慮されることがありません。そのためWordPressでもタイトルとキャッチフレーズの単語を区切ることで「見やすくする」のがWordPressのタイトルセパレーターです。
区切り文字に使用されることが多い「-」はハイフンと読むのが分かりやすいかもしれませんね。
そして「|」はパイプとかパイプラインなどと読みます。
タイトルセパレーターを変更するコード
最初にWordPressのタイトルセパレーターを変更するやり方に必要なコードを記載しておきます。
add_theme_support('title-tag');
add_theme_support(‘title-tag’);をテーマのfunctions.phpに記述します。
header.phpでWordPressのタイトルを出力している場合には、headで出力させているtitleタグを削除します。head要素のtitleタグが二重に出力されないようにするためです。
WordPressのタイトルをfunctions.phpで出力すると、タイトルとキャッチフレーズの真ん中に「-」ハイフンがタイトルセパレーターとして表示されます。
出力されたタイトルセパレーター「-」をフィルターフックで変更します。
function title_separator_change( $sep ){
$sep = '|';
return $sep;
}
add_filter('document_title_separator', 'title_separator_change');
上記のコードをfunctions.phpに記述します。
WordPressのデフォルトで出力されていた「-」ハイフンのセパレーターが「|」パイプラインに変更することができます。
タイトルをadd_theme_supportで出力
WordPressのバージョン4.1以降からタイトルをadd_theme_supportで出力することができます。
add_theme_support('title-tag');
title-tagを引数に記述したadd_theme_support(‘title-tag’);のコードをタイトルを出力したいテーマのfunctions.phpに記述するだけで、head要素にtitleタグでマークアップされたセパレーター付きの「タイトル-キャッチフレーズ」の表示形式タイトルを出力できます。
「タイトル-キャッチフレーズ」のハイフン「-」のタイトルセパレーターはwp-includes/general-template.phpに記述しているコードによってWordPressがデフォルトで出力するタイトルのセパレーターです。
/**
* Filters the separator for the document title.
*
* @since 4.4.0
*
* @param string $sep Document title separator. Default '-'.
*/
$sep = apply_filters( 'document_title_separator', '-' );
デフォルトのセパレーターだとWordPressサイトに使うタイトルの単語をハイフンで区切っている場合などには少し見づらくなってしまう感じがするので、セパレーターを変更したほうが見やすい場合があります。
セパレーターをdocument_title_separatorで変更
document_title_separatorというWordPressのフィルターでタイトルセパレーターを変更できます。
function title_separator_change( $sep ){
$sep = '|';
return $sep;
}
add_filter('document_title_separator', 'title_separator_change');
WordPressがタイトルを出力するときにはdocument_title_separatorフィルターを通ります。このときのdocument_title_separatorにフィルターフックでWordPressのタイトルセパレーターを変更する関数を登録してあげることで、「-」ハイフンのセパレーターを「|」パイプラインに変更可能です。
WordPressのタイトルセパレーターを変更するには、functions.phpに関数名を記述したら引数に$sepを加えます。
変数$sepにはWordPressのタイトルセパレーターを変更する文字列を代入します。今回は「|」パイプラインを文字列で代入。パイプ文字の入力方法はShiftキー押しながらEnterの上の縦線のキーを押します。
$sep変数に代入した値の「|」パイプラインは、出力するために返して欲しいので$sepをreturnします。これでWordPressのタイトルセパレーターを変更する関数の出来上がりです。
作成したWordPressのタイトルセパレーターを変更する関数はdocument_title_separatorにフィルターフックで登録します。
登録するとWordPressのデフォルトで出力されるタイトルセパレーターはパイプ文字になって「タイトル|キャッチフレーズ」に変更されたタイトルで表示できます。
ソース上で確認した場合でもhead要素にtitleタグのマークアップでタイトルとキャッチフレーズの間に変更したセパレーターが表示できていれば、WordPressのタイトルセパレーターを変更するやり方は成功しています。
ちなみにセパレーターを変更したWordPressのtitleタグをheadに出力することができているのはwp-includes/default-filters.phpに記述されているadd_actionによるものです。
add_action( 'wp_head', '_wp_render_title_tag', 1 );