理想の <title> をもとめて
WordPress のインストール直後は タグを出力するテンプレートは以下のようになっていた。
<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Blog Archive <?php } ?> <?php wp_title(); ?></title>
これだと記事のタイトルは「ブログ名 » Blog Archive » 記事タイトル」のようになる。これを「記事タイトル - ブログ名」にしたくて、
<title><?php
wp_title(' ');
if (wp_title(' ', false)) echo ' - ';
bloginfo('name'); ?></title>
というテンプレートをいままでは使っていた。
しかし、今日はじめて気づいたのだが、これだと「 記事タイトル - ブログ名」というふうに、タイトルの直前に余分なスペースが残ってしまう。
どうやら、wp_title() は区切り文字が空文字のときでも、周囲のスペースを挿入してしまうらしい。
しょうがないので、力技だが、出力前に trim()
してみる。
<title><?php
echo trim(wp_title('', false));
if (wp_title('', false)) echo ' - ';
bloginfo('name'); ?></title>
これでやっと「記事タイトル - ブログ名」にできた。
なお、Optimal Title というプラグインもあるようだ。このプラグインをインストールすれば、区切り文字を末尾に追加してくれるバージョンの wp_title()
として、optimal_title()
が使えるようになる、とのこと。
うーん、wp_title()
がもうちょっと汎用的につくってあってもいいと思うんだけど…。