【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' );
    

    タイトルタグ – 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

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

    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

    シェア
    広告
    野良人 代表
    新免祥太
    1988年岡山生まれ。外食企業のWEB・EC担当を経験したのち、2013年12月より「野良人(のらんど)」の屋号で独立しWEBデザイン・プログラミングなどWEBサイト制作の工程全般を請け負っています。お気軽にご相談ください。
    <次の記事(2018/10/02)
    2018/09のブックマーク・読んだ本など
    前の記事>(2018/09/05)
    Skype勉強会
    記事一覧