tips

the_archive_title の先頭のプリフィクスを削除する方法(wp5.5以降)

get_the_archive_title()を使用しているテーマは多いですが、「タグ:」や「カテゴリー:」などのプリフィクスが付いてきて、日本語の直感的にしっくりこない、という方は多いのではないでしょうか。

久しぶりに修正しようと思って、検索したところ、カスタマイズした関数を再制作したり、あろうことかコアを上書きしたりなどという解決法の提示まで出会ったのですが、最新事情に対応した物を見かけなかったので書いておきます。5.5以降、プリフィクスにまつわるフィルターが追加されているので、すっきりまとめて設定できます。なるべく手数は少なくいくべきだと思うので。

方法の一つ目は、プリフィクス自体をやめてしまうことです。

add_filter( 'get_the_archive_title_prefix', '__return_empty_string' );

特定のプリフィクスを残したり、並びを変えたいなら、次のような方法もいいと思います。以下は「美味しい食べ物 / カテゴリー」のように書き換えるパターンです。

add_filter( 'get_the_archive_title', function( $title, $original_title, $prefix ){
  if ( $prefix ){
    $title = $original_title. ' / ' .trim( str_replace( array(':',':'),'', $prefix ) );
  }
  return $title;
}, 10, 3 );

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です