1. ホーム
  2. WordPress
  3. get_the_archive_title()で表示される「カテゴリー: 」などを表示させなくする方法

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回だけ置換処理をするようにしています。

これでカテゴリーやタグ、月別などアーカイブの種類に気を遣わなくても使えるようになりました。

スポンサーリンク

コメント

この記事へのコメントはありません。

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)