Post Image
Scritto da Markus Nicholson il 23 Agosto 2022

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

svgPrev Post
svg
svgCome integrare Google TAG Manager in Wordpress?

Che ne pensi di questa soluzione?