get_the_archive_title()で呼び出したタイトルから”アーカイブ:”、”カテゴリー:”、”タグ:”、”作者:”を消す方法
WordpressのブランクテーマのSageではアーカイブ、タイトル等のタイトルの出力に、
get_the_archive_title();
を使用している。そのため、タイトル部分の出力をする際に以下のようになってしまう。
archive.phpの場合
アーカイブ:タイトル
年別アーカイブの場合
年:◯年
月別アーカイブの場合
月:◯年◯月
category.phpの場合
カテゴリー:タイトル
author.phpの場合
作者:作者名
この「:」より前の部分が不要なので削除したい・・・
ということで検索したところ以下のような記事が。
add_filter( 'get_the_archive_title', function ($title) { if ( is_category() ) { $title = single_cat_title( '', false ); } elseif ( is_tag() ) { $title = single_tag_title( '', false ); } elseif ( is_author() ) { $title = '<span class="vcard">' . get_the_author() . '</span>' ; } return $title; });
これでいけたと思いきや、カスタム投稿タイプのページを開くと以下のような感じで残ってしまっていた。
アーカイブ:カスタム投稿タイトル
そりゃアーカイブページの場合の分岐なかったもんな・・・そこで、仕方がないのでget_the_archive_title();を検索。
get_the_archive_title() | Function | WordPress Developer Resources
アーカイブのタイトルはpost_type_archive_title()で呼び出されてるっぽいので、さっきのコードを少し変更。
add_filter( 'get_the_archive_title', function ($title) { if ( is_archive() ) { $title = post_type_archive_title( '', false ); } elseif ( is_category() ) { $title = single_cat_title( '', false ); } elseif ( is_tag() ) { $title = single_tag_title( '', false ); } elseif ( is_author() ) { $title = '<span class="vcard">' . get_the_author() . '</span>' } return $title; });
これで、「アーカイブ:」も消えました。