アーカイブページのタイトルから「カテゴリー:」を消す方法【ワードプレス】
多くのWordPressテーマで、アーカイブページのタイトル出力はthe_archive_titleという関数を使って行われています。タグアーカイブだったり、タクソノミーアーカイブだったり、アーカイブページには様々なタイプがありますが、これ1つで上手に表示してくれます。しかし、デフォルトで付いている「カテゴリー:」や「タグ:」が邪魔になる事は多いものです。見やすいとは思いますけど、デザイン性はゼロですよね…。
そこで今回は、これらのカテゴリー名やタグ名の前に付く部分を一括して削除する方法です。テンプレートはいじらずにfunctions.phpにちょこっと書き足して、全アーカイブページのタイトルから「カテゴリー:」や「タグ:」の部分を消してスッキリさせてみます。
注意:このページの方法はテーマでアーカイブページのタイトル表示にthe_archive_titleを使用している場合のみに有効です。別の方法で書き出している場合は、各テンプレート内の指定箇所を編集しなければいけません。
~ 目次 ~
アーカイブタイトルの変更にはget_the_archive_titleフックを使う
私自身、アーカイブページのタイトルをカスタマイズする時にいつも間違えそうになるので、忘れないように書いておきます。the_archive_titleは、get_the_archive_titleで作成したタイトルを前後にタグなどを挿入して表示するだけの関数です。フィルターフックもありません。自作関数をアーカイブページのタイトルに関連付けるには、get_the_archive_titleフックを使いましょう。
「カテゴリー:」や「タグ:」を消すコード
文字列操作が正確にできれば、どんなやり方でもいいと思います。この程度の事でいちいち正規表現なんか使ってたらサイトが重くて動かなくなりそうなので、今回はPHPの関数explode()を使っています。タイトルと不要な部分を切り分けて、タイトル部分のみを返します。
以下のコードをコピーして、使用中のテーマのfunctions.phpの最後に貼り付けましょう。最終行に”?>”と記述されている場合は、これを消さないように注意して、その前に貼り付けます。
1 2 3 4 5 6 7 8 |
function custom_archive_title($title){ $titleParts=explode(': ',$title); if($titleParts[1]){ return $titleParts[1]; } return $title; } add_filter('get_the_archive_title','custom_archive_title'); |
最後に
なんだかカッコ悪い「カテゴリー:」や「タグ:」、ちゃんと消せたでしょうか。
これで消えない、まったく変化が出ないという場合は、プラグインや他の関数でタイトル変更に関係しているものが無いか疑ってみて下さい。