get_the_archive_title()で表示される「カテゴリー: 」などを表示させなくする方法
カテゴリーやタグ、日付などのアーカイブページで冒頭にそのアーカイブのタイトルを表示する場合、いろいろな方法がありますが一番汎用性があるのがget_the_archive_title()を使う方法です。
これを使うとどの種類のアーカイブでも適切に判断して表示してくれるので楽ちんです。archive.phpしか使わないという場合は特に楽ですね。
ところが、この関数はタイトルの前に「カテゴリー: カテゴリー名」「月別: 2015年10月」のようにアーカイブ名の前におまけがついてしまいます。
これでは例えば「2015年10月の記事一覧」とうようなシンプルなものにしたいときに困まるのですが、この表示をコントロールするオプションもどうやら無さそうです。
ということで正規表現を使って冒頭のアーカイブの種類を表示する文字列を削除することにしました。
[php]
$pattern = ‘/.+?: /’;
$title = preg_replace($pattern,”,get_the_archive_title(),1);</code>
echo ‘<h1>’.$title.’の記事一覧</h1>’;
[/php]
考え方としては”: ”(コロン+半角スペース)が必ず使われるのでそれを検索のキーとして利用しています。あと、日本語環境では可能性は低いと思うのですがカテゴリーやタグの名前に万が一’: ‘が含まれている場合も考えて1回だけ置換処理をするようにしています。
これでカテゴリーやタグ、月別などアーカイブの種類に気を遣わなくても使えるようになりました。
スポンサーリンク
コメント
この記事へのコメントはありません。
コメントをどうぞ