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.

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;    
});

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()


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


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>

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.


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; 
}

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);
?>

-2

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

single_cat_title();

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.