it-swarm.com.ru

Удалить "Категория:", "Тег:", "Автор:" из the_archive_title

У меня есть следующий код в архиве моей темы:

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

Это дает мне такие названия, как "Категория: Россия", "Тег: Америка", "Автор: Джон".

Я хотел бы удалить части "Category:", "Tag:" и "Author:" и просто отобразить категорию, тег и имена авторов.

Кто-нибудь знает, как этого добиться?

Спасибо.

44
Nick

Вы можете расширить get_the_archive_title фильтр который я упомянул в этот ответ

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 без слова: "Архив":

Если вы создаете пользовательский шаблон архива для CPT и хотите вывести только заголовок 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

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; в таксономии-category.php вне публичной темы.

2
Hoang Oanh

Я бы использовал фильтр и поместил бы его в файл functions.php

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

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