web-dev-qa-db-ja.com

The_archive_titleから "Category:"、 "Tag:"、 "Author:"を削除します。

私のテーマのarchive.phpには以下のコードがあります。

<?php the_archive_title( '<h1 class="page-title">', '</h1>' ); ?>

これにより、 "カテゴリ:ロシア"、 "タグ:アメリカ"、 "作者:ジョン"などのタイトルが表示されます。

"Category:"、 "Tag:"、 "Author:"の部分を削除して、カテゴリ名、タグ名、作者名を表示するだけです。

誰もがこれを達成する方法を知っていますか?

ありがとうございました。

44
Nick

この回答 で説明した get_the_archive_title filter を拡張できます

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;

});
66
Pieter Goosen

関数single_term_title()を使う

23

CPTタイトルの場合Wordなし:「アーカイブ」:

CPT用のカスタムアーカイブテンプレートを作成していて、「Archive」のような追加のWordなしでCPTのタイトルだけを出力したい場合は、代わりに次の関数を使用してください。

echo post_type_archive_title( '', false );

developer.wordpress.org から

9
Mike

私はこれが物事を単純化し過ぎているように感じますが、これは私がしたことです...

<h1><?php echo str_replace("Archives: ", "", get_the_archive_title()); ?></h1>
5
Tisch

テーマの分類外のtaxonomy-category.php内のecho '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>';

2
Hoang Oanh

私はフィルタを使用してファイルfunctions.phpにそれを置くでしょう

add_filter( 'get_the_archive_title', 'replaceCategoryName'); 
   function replaceCategoryName ($title) {

   $title =  single_cat_title( '', false );
   return $title; 
}
0
Yaworek