理想の <title> をもとめて

理想の <title> をもとめて

2007/01/09 7:28am

WordPress のインストール直後は タグを出力するテンプレートは以下のようになっていた。

<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; 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() がもうちょっと汎用的につくってあってもいいと思うんだけど…。