ずいぶん以前に作ったサイトを改変することがあって、コードを見直していたら、the_titleフックを使っている部分がありました。
で、header.phpをみると、そこで直接タイトルタグを出力していて、結局、フックのところと、header.phpのところと、同じコードを書いているという、お粗末なことをやっておりまして。
そこで思い出したのですが、当時the_titleフックでtitleタグの内容を書き換えようとしたけれどうまくいかず、時間もなかったので、とりあえずheader.phpに直接書き込んだと。
ということで、お題のとおりなのですが、 titleタグへの表示を変えるフックは、the_titleではなくwp_titleです。
なので、表示するタイトルと、titleタグの内容を同じにしたいのなら、wp_titleフックも必要です。
function my_title( $title ) { if (is_page('99') && esc_html($_GET['type'])){ $title = esc_html($_GET['type'])."式戦車|".$title; } if (is_singular('tanks')){ $title = "[解説]".$title; } return $title; } add_filter('the_title', 'my_title'); add_filter('wp_title', 'my_title');
こんな感じ。
ちなみに、is_page(’99’)で、固定ページのIDが99で、かつGETオプションのtypeがあったら、タイトルに追加するようにしています。
また、カスタム投稿のtanksだったら、タイトルの頭に[解説]を付け足すようにしています。