Twenty Twelveの子テーマのwp_titleで…

久々にWordPressネタ。

去年ブログのテーマを一新して、
標準テーマ「Twenty Twelve」の子テーマを自作したんだけど、
今更な部分で気になる部分があったので直してみたー

ブログのタイトル部分をよくよく見てみると、
「みつ(@@@)の雑記 | “萌え”は俺の人生そのもの。
とWordPressでいうところのキャッチフレーズまで出てしまってる・・・

元々はブラウザのタイトル部分だけだし・・・と思って
あまり気にしていなかったんだけど、
よくよく考えるとブックマークしたり、フィードを登録したり、
グーグル先生の検索だったり、あらゆるところで出てくる・・・!

フレーズ自体は気に入ってるけど、
あちこちで出すのは痛すぎる・・・!(笑
↑のブログタイトルの下にちょこっと出てるだけで良い。

ということでタイトルからキャッチフレーズを消してみるー

とりあえず調べてみると、ピッタリな情報を発見。
Twenty Twelveのwp_titleでサイト名の後にキャッチフレーズが付いてくる理由
まさにこれ。

でもこれだと「Twenty Twelve」の
functions.phpを直接弄っちゃってる・・・
WordPressで標準のテーマを直に触るのは御法度だと思う。
アップデートして変更した部分が戻ってしまう恐れもあるし。

なので↑の情報を参考に子テーマ側で対応してみたー

wp_titleをフックしてtwentytwelve_wp_titleを
呼び出してるのは分かったから、子テーマのfunction.phpに
同名の関数を定義してキャッチフレーズを付加する部分だけ削ればイケるか!
と思ったけど真っ白^^;
フック系は同名だとダメみたい?

色々と試行錯誤した結果、↓この方法でイケた。

function twentytwelve_ex_wp_title( $title, $sep ) {
	global $paged, $page;
	
	remove_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 );

	if ( is_feed() )
		return $title;
	
	// Add the site name.
	$title .= get_bloginfo( 'name', 'display' );
	
	// Add a page number if necessary.
	if ( $paged >= 2 || $page >= 2 )
		$title = "$title $sep " . sprintf( __( 'Page %s', 'twentytwelve' ), max( $paged, $page ) );
	
	return $title;
}
add_filter( 'wp_title', 'twentytwelve_ex_wp_title', 9, 2 );

子テーマのfunction.phpにtwentytwelve_wp_titleを
コピペした別名の関数を作って、
キャッチフレーズを出力する処理を削って、
元のtwentytwelve_wp_titleのフィルタを消しちゃう処理を追加。
あとはこれを元のフィルタより優先度を高くしてwp_titleのフィルタを登録。

そりゃ上手くいくよねって感じの方法で、
あまり綺麗なやり方じゃない気もするけど、
もっと他に良いやり方があるのかなー?
まぁ親テーマは弄ってないし、これで良いかー

じゃ、ゲームして寝るー
バイニー☆

test?

コメントを残す