Usuń „Category:”, „Tag:”, „Author:” z the_archive_title

50

Mam następujący kod w pliku archive.php mojego motywu:

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

To daje mi tytuły takie jak „Kategoria: Rosja”, „Tag: America”, „Autor: John”.

Chciałbym usunąć część „Kategoria:”, „Tag:” i „Autor:” i po prostu wyświetlić nazwy kategorii, tagu i autora.

Czy ktoś wie, jak to osiągnąć?

Dziękuję Ci.

Nacięcie
źródło

Odpowiedzi:

80

Możesz rozszerzyć get_the_archive_titlefiltr, o którym wspomniałem w tej odpowiedzi

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>' ;    
        } elseif ( is_tax() ) { //for custom post types
            $title = sprintf( __( '%1$s' ), single_term_title( '', false ) );
        }    
    return $title;    
});
Pieter Goosen
źródło
2
To działa! Dzięki, Pieter! W przypadku, gdy mniej zaawansowani użytkownicy szukają tego samego rozwiązania: dodajesz kod Pietera do pliku functions.php i to wszystko!
Nick
Zrób to w motywie potomnym, aby zmiany nie zginęły po aktualizacji motywu.
Jürgen Paul,
1
Działa to całkiem dobrze, ale brakuje skrzynek na archiwa i niestandardowe taksonomie.
JacobTheDev,
Zobacz rozwiązanie Bena Gillbanksa do wszystkich archiwów typów i taksonomii.
Dan Knauss
25

Użyj funkcji single_term_title()

Тимофей А.
źródło
W WP możesz robić różne rzeczy, ale zawsze wybrałem najprostsze rozwiązania. Dzięki Timo.
f055
1
Cóż, to po prostu nie działa dla wszystkich archiwów, które nie są terminami. Więc moim zdaniem niezbyt dobre rozwiązanie.
GDY
9

W przypadku tytułu CPT Bez słowa: „Archiwum”:

Jeśli budujesz niestandardowy szablon archiwum dla CPT i chcesz wypisać tylko tytuł CPT bez dodatkowego słowa, takiego jak „Archiwum”, użyj zamiast tego następującej funkcji:

echo post_type_archive_title( '', false );

From developer.wordpress.org

Mikrofon
źródło
5

Wydaje mi się, że to upraszcza, ale to właśnie zrobiłem ...

<h1><?php echo str_replace("Archives: ", "", get_the_archive_title()); ?></h1>
Tisch
źródło
1
nie działałoby to w przypadku witryny w języku innym niż angielski.
Maxwell sc
2

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; w taxonomy-category.php poza tematem publicznym.

Hoang Oanh
źródło
1

Chciałbym użyć filtru i umieścić go w pliku functions.php

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

   $title =  single_cat_title( '', false );
   return $title; 
}
Yaworek
źródło
0

Zakładając, że format jest zawsze: Prefix: Archive Namemożemy po prostu znaleźć pierwszy dwukropek, po którym następuje spacja, i po tym wyświetlić zawartość, używając get_the_archive_title () z funkcjami PHP substr () i strpos () .

<?php // Only show the portion of the string following the first ": "
  echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2);
?>
t-jam
źródło
-2

Możesz użyć następujących elementów, aby mieć tylko tytuł bez prefiksu

single_cat_title();
Xiomara
źródło
2
Chociaż jest to prawda, zostało to zasugerowane wcześniej w innych odpowiedziach.
Nicolai
-4

informator: wp-includes

plik: general-template.php

znajdź funkcję: get_the_archive_title() zmień:

if ( is_category() ) {
        $title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) );
    } elseif ( is_tag() ) {
        $title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) );
    } elseif ( is_author() ) {
        $title = sprintf( __( 'Autor: %s' ), '<span class="vcard">' . get_the_author() . '</span>' );
    }

do:

if ( is_category() ) {
        $title = sprintf( __( '%s' ), single_cat_title( '', false ) );
    } elseif ( is_tag() ) {
        $title = sprintf( __( '%s' ), single_tag_title( '', false ) );
    } elseif ( is_author() ) {
        $title = sprintf( __( '%s' ), '<span class="vcard">' . get_the_author() . '</span>' );
    }//if you want to remove or just change text if you need to
Dragan Nikolic
źródło
3
Eee, czy naprawdę sugerujesz zhakowanie rdzenia tutaj?
cjbj
3
To bardzo, bardzo zły pomysł. Nie możesz teraz zaktualizować bez utworzenia osobnego oddziału.
fuxia
Sory, jeśli przerywam role, daję na to słowo, ale to tylko kolejne rozwiązanie nic złego. Więc powiedziałeś, że włamuję się na własną stronę lub nie mogę udostępniać kodu z podstawowych plików?
Dragan Nikolic
Cóż, to twoja strona internetowa i możesz edytować cokolwiek chcesz - nawet podstawowe pliki. Jednak sieć ulegnie awarii, jeśli zaktualizujesz Wordpress ...
Raccoon