Come Modificare il Titolo della Pagina 404
Ho provato diversi metodi dopo aver cercato su internet ma non riesco a rimuovere "Nothing Found" dal titolo della mia pagina 404. Come posso farlo? Per favore aiutatemi
Ho anche utilizzato questo codice nell'header della mia pagina 404
if( is_404() ) echo 'il messaggio 404 va qui | ';
else wp_title( '|', true, 'right' );
Ho anche rimosso la funzione php del titolo e ho inserito il mio header personalizzato ma continua a non cambiare, perché?

Userei l'hook filter wp_title
:
function theme_slug_filter_wp_title( $title ) {
if ( is_404() ) {
$title = 'AGGIUNGI QUI IL TESTO DEL TITOLO 404';
}
// Puoi fare altri filtri qui, oppure
// semplicemente restituire $title
return $title;
}
// Aggancia all'hook filter wp_title
add_filter( 'wp_title', 'theme_slug_filter_wp_title' );
Questo funzionerà bene con altri Plugin (ad es. Plugin SEO), e sarà relativamente compatibile con il futuro (le modifiche al titolo del documento arriveranno presto).
MODIFICA
Se hai bisogno di sovrascrivere un filtro di un Plugin SEO, probabilmente ti basta aggiungere una priorità più bassa alla tua chiamata add_filter()
; ad esempio come segue:
add_filter( 'wp_title', 'theme_slug_filter_wp_title', 11 );
Il valore predefinito è 10
. Numeri più bassi vengono eseguiti prima (ad es. priorità più alta), mentre numeri più alti vengono eseguiti dopo (ad es. priorità più bassa). Quindi, assumendo che il tuo Plugin SEO usi la priorità predefinita (cioè 10
), basta usare un numero pari a 11 o superiore.

Grazie, il problema non era dovuto al mio plugin SEO ma grazie per la risposta :) Ora ho un altro problema la mia pagina 404 restituisce un header di risposta 404, come posso cambiarlo?

Il plugin SEO sta quasi certamente usando il filtro wp_title
. Se hai bisogno di sovrascriverlo, aggiungi una priority alla tua chiamata add_filter()
. Vedi l'aggiornamento della risposta.

WordPress 4.4 e versioni successive
La risposta accettata non funziona più poiché wp_title
è deprecato in WordPress 4.4 e versioni successive (vedi qui). Ora dobbiamo utilizzare l'hook filter document_title_parts invece.
Ecco la risposta accettata riscritta per utilizzare document_title_parts
.
function theme_slug_filter_wp_title( $title_parts ) {
if ( is_404() ) {
$title_parts['title'] = 'INSERISCI QUI IL TESTO DEL TITOLO PER ERRORE 404';
}
return $title_parts;
}
// Aggancio a document_title_parts
add_filter( 'document_title_parts', 'theme_slug_filter_wp_title' );

Il seguente codice funziona correttamente con il tema twenty eleven:
if ( is_404() ) {
echo __('Nessun risultato trovato','mytheme')
}
Quindi il codice per il titolo sarà il seguente:
<title>
<?php
global $page, $paged;
if ( is_404() ) {
echo __('Nessun risultato trovato | ','mytheme');
}
else {
wp_title( '|', true, 'right' );
}
?>
</title>

Consiglio fortemente di generare sempre il testo del tag <title>
utilizzando la funzione wp_title()
, sia passando un argomento che utilizzando l'hook filter wp_title
, in modo che il codice funzioni correttamente con altri plugin che tentano di modificare il testo del tag <title>
.

Grazie, non cambiava a causa del mio plugin SEO ma grazie per la risposta :)
