
WordPress 4.1から テーマのヘッダー(header.php)に titleタグを入れなくてもWordPressがいい感じにタイトルを出力してくれる機能が追加されました。
この機能を使っているテーマは header.phpには titleの項目は無くて、functions.php に add_theme_support( ‘title-tag’ ); が追記されます。
TwentyFifteen とか今後リリースされるテーマがそうなってくると思います。これでヘッダーもスッキリしました。
しかし、タイトル内の区切り線 | を変えるにはどうしたらいい?と質問がありました。
確かにテーマ内にはwp_title関数はどこにも見当たりません。気にもしなかったのですが、こたわる方は変えたいのでしょう。
以前のように add_theme_support( ‘title-tag’ ); を削除して header.php に書き込めばいいのでしょうがこれではTheme Checkに怒られます。
という事で以下のコードを テーマの functions.php に設置すると wp_title関数に引数を送れるようになります。
※WordPress 4.4以降は非推奨になりました。
/*
* タイトルタグのレンダリングを停止する
* @since WordPress 4.1.0
*/
remove_action( 'wp_head', '_wp_render_title_tag', 1 );
/*
* タイトルタグをヘッダーに設置 (区切り線を - にする)
*
* @since WordPress 4.1.0
* License: GPLv2 or later
*/
function nendebcom_header_title_tag(){
?>
<title><?php wp_title( '-', true, 'right' ); ?></title>
<?php
}
add_action( 'wp_head', 'nendebcom_header_title_tag' );
設置したらサイトのhtmlソースを見て確認しましょう。( titleタグが2重にでてないか..もです。)
*Theme Checkをバスする為に echo は使っていません。
※WordPress 4.4以降はこちらです。
/*
* タイトルの区切り線を | にする
*
* @since WordPress 4.4.0
* License: GPLv2 or later
*/
function nendebcom_title_separator( $sep ){
$sep = '|';
return $sep;
}
add_filter( 'document_title_separator', 'nendebcom_title_separator' );
スポンサードリンク
大がかりに変更したい場合
上記の wp_title~ の所を 以下の wp_title関数を参考にがっつりコードを書いてみるもいいかと思います。
※WordPress 4.4未満はこちらです。
wp-includes/general-template.php 内 「function wp_title()」
※WordPress 4.4以降はこちらです。
wp-includes/general-template.php 内 「function wp_get_document_title()」
参考
WordPress Codex Title Tag
http://wpdocs.sourceforge.jp/Title_Tag
WordPress Codex テンプレートタグ/wp title
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_title
Make WordPress Core Title Tags in 4.1
https://make.wordpress.org/core/2014/10/29/title-tags-in-4-1/