Rimuovi "Categoria:", "Tag:", "Autore:" da the_archive_title


51

Ho il seguente codice nell'archivio.php del mio tema:

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

Questo mi dà titoli come "Categoria: Russia", "Tag: America", "Autore: John".

Vorrei rimuovere la parte "Categoria:", "Tag:" e "Autore:" e visualizzare solo i nomi di categoria, tag e autore.

Qualcuno sa come realizzare questo?

Grazie.

Risposte:


81

Puoi estendere il get_the_archive_titlefiltro che ho citato in questa risposta

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
Che funzioni! Grazie Pieter! Nel caso in cui gli utenti meno esperti di tecnologia stiano cercando la stessa soluzione: aggiungi il codice di Pieter al tuo file Functions.php e il gioco è fatto!
Nick,

Fallo in un tema figlio in modo che le modifiche non vadano perse in caso di aggiornamento del tema.
Jürgen Paul,

1
Funziona abbastanza bene, ma mancano casi per archivi e tassonomie personalizzate.
JacobTheDev,

Vedi la soluzione di Ben Gillbanks per tutti gli archivi e le tassonomie di tipo post.
Dan Knauss,

25

Usa la funzione single_term_title()


Puoi fare le cose in molti modi in WP, ma ho sempre optato per le soluzioni più semplici. Grazie Timo.
f055,

1
Bene, questo non funziona per tutti gli archivi che non sono termini. Quindi, secondo me, non è un'ottima soluzione.
GDY

9

Per il titolo CPT Senza parola: 'Archivio':

Se stai creando un modello di archivio personalizzato per un CPT e desideri produrre solo il titolo del CPT senza parole extra come "Archive", usa invece la seguente funzione:

echo post_type_archive_title( '', false );

Da developer.wordpress.org


5

Sento che questo è finito semplificando le cose, ma questo è quello che ho fatto ...

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

1
questo non funzionerebbe per un sito Web non inglese.
Maxwell sc

2

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; in taxonomy-category.php al di fuori del pubblico del tema.


1

Vorrei usare un filtro e inserirlo in un file Functions.php

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

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

0

Supponendo che il formato sia sempre: Prefix: Archive Namepossiamo solo trovare i primi due punti seguiti da uno spazio e mostrare solo il contenuto dopo questo, usando get_the_archive_title () con le funzioni substr () e strpos () di PHP .

<?php // Only show the portion of the string following the first ": "
  echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2);
?>

-2

Puoi usare quanto segue per avere solo il titolo senza il prefisso

single_cat_title();

2
Sebbene sia vero, questo è stato suggerito in precedenza in altre risposte.
Nicolai,

-4

directory: wp-includes

file: general-template.php

trova funzione: get_the_archive_title() cambia:

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

per:

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
Err, stai davvero suggerendo di hackerare il core qui?
cjbj,

3
Questa è una pessima idea. Non è possibile aggiornare ora senza creare un ramo separato.
fuxia

Sory se rompo ruoli do una parola per quello, ma questa è solo un'altra soluzione nulla di malevolo. Quindi, hai detto che ho hackerato il mio sito o non posso condividere il codice dai file core?
Dragan Nikolic,

Bene, è il tuo sito Web e puoi modificare quello che vuoi, anche i file core. Tuttavia, il web si interromperà se aggiorni Wordpress ...
Raccoon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.