WordPress4.1対応テーマのタイトル(wp_title)を変更したい場合。

main_addtitle
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/