Rimuovere "Categoria:", "Tag:", "Autore:" da the_archive_title
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.
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;
});

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!

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

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

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

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

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

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

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

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 )

A partire da WordPress 5.5 puoi rimuovere il prefisso con questo hook:
add_filter('get_the_archive_title_prefix','__return_empty_string');

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

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

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

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

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

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?
