【WordPress】add_theme_support( ‘title-tag’ )のフィルターフック
add_theme_support( ‘title-tag’ )でタイトルタグを出力する際のフィルターフックの覚書です。
タイトルタグの追加にadd_theme_support( ‘title-tag’ )を使う
PHP
function theme_slug_setup() {
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'theme_slug_setup' );
上記のように記述すると、wp_head
アクションにフックされている_wp_render_title_tag()
関数がタイトルタグのサポート状況を判定し、wp_get_document_title()
関数を実行します。
wp_get_document_title()
内のフィルターフックでタイトルタグのカスタマイズが可能になります。
https://core.trac.wordpress.org/browser/tags/4.9/src/wp-includes/general-template.php#L1071
用意されているフィルターフックは以下の通り。
セパレーターを変更する:document_title_separator
デフォルトのセパレーター「-」を任意のものに変更します。
PHP
function my_separator($sep) {
$sep = '|';
return $sep;
}
add_filter( 'document_title_separator', 'my_separator' );
中身を書き換える:document_title_parts
wp_get_document_title()
の戻り値に配列が入っているので任意に書き換えます。配列の中身は以下の通り。
$title['title']
//ページタイトル
$title['tagline']
//トップページで出力。キャッチフレーズ(description)です。get_bloginfo( 'description', 'display' )の結果が入っています。
$title['site']
//トップページ以外で出力。サイトのタイトルです。get_bloginfo( 'name', 'display' )の結果が入っています。
$title['page']
//ページ送りがある場合、ページ数が入ります。
全部自分で書く時:pre_get_document_title
wp_get_document_title()
関数で行う色々な処理を全部キャンセルして自分で全部書きたい時用。
これ使うならそもそもadd_theme_support( 'title-tag' )
を使う意味ないですが、子テーマとかで条件分岐とかも含めてカスタムしたい時に使ってねってことなのだろうか。
▼参考 WordPress:add_theme_support( ‘title-tag’ ); 使用時にタイトルからキャッチフレーズを削除したりセパレータを変更する方法 | NxWorld
広告