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

27 feb 2015, 07:38:17
Visualizzazioni: 152K
Voti: 87

Ho il seguente codice nel mio archive.php del tema:

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

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

Vorrei rimuovere la parte "Categoria:", "Tag:" e "Autore:" e visualizzare solo i nomi della categoria, del tag e dell'autore.

Qualcuno sa come realizzare questo?

Grazie.

0
Tutte le risposte alla domanda 11
7
137

Puoi estendere il get_the_archive_title filter che ho menzionato 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()) { // per tipi di post personalizzati
        $title = sprintf(__('%1$s'), single_term_title('', false));
    } elseif (is_post_type_archive()) {
        $title = post_type_archive_title('', false);
    }
    return $title;
});
27 feb 2015 08:37:12
Commenti

Funziona! Grazie, Pieter! Nel caso in cui utenti meno esperti stiano cercando la stessa soluzione: aggiungi il codice di Pieter al tuo file functions.php e il gioco è fatto!

Nick Nick
27 feb 2015 23:05:56

Fallo in un child theme così le tue modifiche non verranno perse con un aggiornamento del tema.

Jürgen Paul Jürgen Paul
19 ago 2016 10:01:56

Funziona abbastanza bene, ma mancano i casi per gli archivi e le tassonomie personalizzate.

JacobTheDev JacobTheDev
23 nov 2016 18:57:42

Vedi la soluzione di Ben Gillbanks per tutti gli archivi dei tipi di post e le tassonomie.

Dan Knauss Dan Knauss
27 gen 2018 07:54:43

Ho appena aggiunto il supporto per gli archivi CPT :)

Maxwell s.c Maxwell s.c
9 mar 2020 22:43:04

non copre l'anno

Corey Corey
16 lug 2020 21:41:39

Risposta vecchia ma ancora funzionante. Grazie. Voto positivo da parte mia.

user9437856 user9437856
5 lug 2021 13:34:41
Mostra i restanti 2 commenti
4
49

Utilizza la funzione single_term_title()

5 mar 2016 00:55:07
Commenti

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

f055 f055
11 gen 2018 16:22:34

Beh, questo semplicemente non funziona per tutti gli archivi che non sono termini. Quindi, secondo me, non è una buona soluzione.

GDY GDY
5 apr 2019 10:13:12

@GDY potresti dire quali elementi che non sono termini dovrebbero essere mostrati negli archivi?

Iggy Iggy
17 dic 2019 07:19:10

questo mi restituisce 'null', c'è qualche impostazione che dovrei configurare?

Marcello Perri Marcello Perri
15 dic 2020 14:38:27
2
22

Per il titolo CPT senza la parola: 'Archivio':

Se stai creando un template di archivio personalizzato per un CPT e vuoi visualizzare solo il titolo del CPT senza parole aggiuntive come "Archivio", utilizza la seguente funzione:

post_type_archive_title();

Da developer.wordpress.org

10 ago 2017 13:24:40
Commenti

Ottimo - questa funzione è esattamente ciò di cui avevo bisogno. Nota che il primo parametro ha già come valore predefinito una stringa vuota e il secondo è impostato su true, quindi verrebbe visualizzato il risultato invece di restituirlo... quindi potresti semplicemente usare post_type_archive_title() per ottenere lo stesso risultato di echo post_type_archive_title( '', false )

squarecandy squarecandy
9 dic 2019 01:32:37

Questa dovrebbe essere la risposta accettata!

Suraj Lulla Suraj Lulla
2 feb 2023 09:07:22
3
14

A partire da WordPress 5.5 puoi rimuovere il prefisso con questo hook:

add_filter('get_the_archive_title_prefix','__return_empty_string');

1 apr 2021 22:15:03
Commenti

Più contesto: https://wordpress.stackexchange.com/a/408321/152624

Jesse Nickles Jesse Nickles
19 feb 2024 10:13:50

get_the_archive_title_prefix() restituisce una stringa, quindi il callback deve essere '__return_empty_string' invece.

Michael Bryan Sumner Michael Bryan Sumner
16 gen 2025 23:10:48

@MichaelBryanSumner return false funziona ma hai ragione, una stringa sarebbe la scelta corretta. Sto aggiornando la mia risposta grazie.

Andrew J Klimek Andrew J Klimek
18 gen 2025 00:43:09
1
11

Mi sembra che questo sia un po' troppo semplificato, ma ecco quello che ho fatto...

<h1><?php echo str_replace("Archives: ", "", get_the_archive_title()); ?></h1>
30 nov 2016 03:09:41
Commenti

questo non funzionerebbe per un sito web non in inglese.

Maxwell s.c Maxwell s.c
9 nov 2018 17:50:01
0

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; nel file taxonomy-category.php all'esterno della cartella public del tema.

13 ago 2016 05:22:02
1

Userei un filtro e lo inserirei nel file functions.php

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

   $title =  single_cat_title( '', false );
   return $title; 
}
14 mag 2018 13:23:44
Commenti

Questa è una bella soluzione, ma dovresti davvero verificare is_category() prima di aggiornare $title con single_cat_title, e se non è is_category(), allora dovresti semplicemente restituire $title invariato..

Paul 501 Paul 501
21 ago 2020 01:53:36
1

Puoi utilizzare il seguente codice per ottenere solo il titolo senza il prefisso

single_cat_title();
27 feb 2018 20:45:37
Commenti

Anche se vero, questo è stato già suggerito in altre risposte.

Nicolai Grossherr Nicolai Grossherr
27 feb 2018 20:52:14
0

Supponendo che il formato sia sempre: Prefisso: Nome Archivio, possiamo semplicemente trovare i due punti seguiti da uno spazio e mostrare solo il contenuto successivo, utilizzando get_the_archive_title() con le funzioni PHP substr() e strpos().

<?php // Mostra solo la porzione della stringa successiva al primo ": "
  echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2);
?>
7 ott 2019 00:59:45
0
add_filter('post_type_archive_title', '__return_empty_string', 5);
// Aggiunge un filtro per restituire una stringa vuota come titolo dell'archivio del post type
15 feb 2022 21:53:32
4
-6

directory: wp-includes

file: general-template.php

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

con:

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>' );
    }//se vuoi rimuovere o modificare il testo a seconda delle tue esigenze
6 set 2016 16:38:23
Commenti

Ehm, stai davvero suggerendo di modificare il core qui?

cjbj cjbj
6 set 2016 16:42:38

Questa è un'idea molto, molto pessima. Non puoi aggiornare ora senza creare un branch separato.

fuxia fuxia
6 set 2016 16:57:10

Scusa se infrango le regole, do la mia parola su questo, ma questa è solo un'altra soluzione nulla di malevolo. Quindi, stai dicendo che sto hackerando il mio sito o che non posso condividere codice dai file del core?

Dragan Nikolic Dragan Nikolic
6 set 2016 20:36:42

È il tuo sito web e puoi modificare quello che vuoi - anche i file core. Tuttavia, il sito potrebbe rompersi se aggiorni WordPress...

Raccoon Raccoon
22 set 2016 03:08:06