ノラWEB屋 野良人(のらんど)- 個人営業のWEB屋さん

【WordPress】add_theme_support( ‘title-tag’ )のフィルターフック

2018年9月11日

add_theme_support( ‘title-tag’ )でタイトルタグを出力する際のフィルターフックの覚書です。

    タイトルタグの追加にadd_theme_support( ‘title-tag’ )を使う

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

    タイトルタグ – WordPress Codex 日本語版

    上記のように記述すると、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

    デフォルトのセパレーター「-」を任意のものに変更します。

    jQuery
    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

    このエントリーをはてなブックマークに追加