Recevoir un mail quand une page 404 est consultée

Lorsque vous devez assurer une veille sur votre site, dans le cadre des pages 404, il peut être nécessaire de recevoir un mail quand celle-ci est appelée, pour cela vous pouvez définir dans votre page 404.php de votre site le code suivant :


<div class="entry-content">
        
Vous
        <?php
        $adminemail = get_option('admin_email'); #Adresse email de l'administrateur WordPress
        $siteweb = get_bloginfo('url'); #URL du site Web
        $nomdusiteweb = get_bloginfo('name'); #Nom du site Web
        if (!isset($_SERVER['HTTP_REFERER'])) {
        #Mesage à l'utilisateur
        echo "avez essayé de vous rendre sur "; #construction du message
        $message404 = "Tout n'est pas perdu!";
        } elseif (isset($_SERVER['HTTP_REFERER'])) {
        #Proposition de solutions à l'utilisateur et envoi d'une alerte mail à l'administrateur
        echo "avez cliqué sur le lien <code>";
        #Construction de l'alerte admin
        $messageerreur = "Un utilisateur a essayé de se rendre sur $siteweb"
        .$_SERVER['REQUEST_URI']." et a reçu une erreur 404 (page non trouvée). ";
        $messageerreur .= "Ce n'était pas sa faute, il faut donc intervenir sur cet incident.
        Url d'origine ".$_SERVER['HTTP_REFERER'];
        mail($adminemail, "Erreur 404 pour ".$_SERVER['REQUEST_URI'],
        $messageerreur, "From: $nomdusiteweb <noreply@$siteweb>");
        $message404 = "Un administrateur a été averti de cet incident.";#L'alerte mail admin a été envoyé
        }
        echo " ".$siteweb.$_SERVER['REQUEST_URI']; ?></code>
        mais cette page n'existe plus ou a été déplacée. <?php echo $message404; ?> Vous pouvez revenir en arrière en cliquant sur le bouton "Précédent" de votre navigateur ou essayer une des ces solutions :
        
</div>

</body>
					<?php get_search_form(); ?>

Ou <a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="Retourner à la page d'accueil" rel="home"><?php _e( 'se rendre à la page d\'accueil', 'twentyeleven' ); ?></a>

</div>
<!-- .page-content -->

A chaque fois qu’une personne ou un robot (moteur de recherche par exemple) accédera à votre page 404, vous recevrez donc un mail avec l’URL d’origine et l’URL de départ.

Quand à l’utilisateur, il aura un message s’excusant du désagrément avec la possibilité de revenir en arrière ou de faire une recherche sur votre site.