Come intercettare gli errori 404 in WordPress?
La mia soluzione smart per risolvere questo problema in WP è attraverso l’hook template_redirect
Un problema comune dei progetti editoriali sviluppati in WordPress è la gestione degli errori 404, ovvero quando l’url di un post o di una pagina non è più raggiungibile, a quel punto si presenta il classico errore di “page not found”.
Il metodo più frequente e comodo per l’utente medio è quello di installare un plugin, uno tra i più scaricati è Redirection Di John Godley.
Se analizziamo la logica possiamo ottenere un buon risultato con qualche riga di codice.
Il vantaggio è abbastanza ovvio: il plugin Redirection ha 166 file in 14 cartelle del peso di 5,5MB, qui sotto invece ce la svanghiamo con una soluzione smart da una decina di righe.
<?php
function MN_redirect_404(){
if( is_404() ) {
$pagina = $_SERVER['REQUEST_URI'];
$data = date("d/m/Y, G:i");
$riga = "$data, $pagina\r\n";
$file_apri = fopen(ABSPATH . '/MN/404.txt', "a");
$file_scrivi = fputs($file_apri, $riga);
fclose($file_apri);
wp_redirect(home_url());
exit();
}
}
add_action('template_redirect', 'MN_redirect_404');
?>
In pratica cosa fa questa funzione? Salva tutte le pagine che vanno in errore in un file testuale 404.txt dentro la cartella MN nella root del sito e intanto rimbalza la pagina non trovata verso l’home.
In questo modo si può monitorare il tutto e decidere poi come intervenire su questo problema di WordPress attraverso la correzione dell’url rotto (individuando la pagina mancante) oppure effettuando un redirect 301 o 302 nel file .htaccess

