Hogyan irányítsd át a 404-es oldalról a látogatóidat automatikusan? előnézeti képe

Hogyan irányítsd át a 404-es oldalról a látogatóidat automatikusan?

| Olvasási idő: 2 perc

Ha a felhasználóid egy olyan oldalra érkeznek, ami nem létezik, az szomorú - ennél már csak az a rosszabb, ha nem 404-es oldalt kapnak (ahol még fel lehetne kínálni nekik további útvonalakat, amiken tovább böngészhetnek), vagy ha ezt a hibát nem kezelnénk le semmilyen módon. Egy lehetséges - azonban hátrányoktól nem teljesen mentes - megoldás lehet az, ha a látogatót automatikusan továbbirányítjuk valamelyik másik aloldalunkra.

Ezt a feladatot meg lehet oldani a sablon 404.php fájljának szerkesztésével is - alapvetően én inkább ezt az irányt preferálnám akkor, ha saját (egyedi fejlesztésű :P) sablont használunk. Ez a haladóbb útvonal, a könnyebb a lejjebb található megoldás lesz.

Nézzük is elsőre ezt az utat: kezdésnek navigálj el a sablonod gyökérkönyvtárába (ha például Valami-nek hívják a sablonodat, akkor nagy eséllyel a /wp-content/themes/valami könyvtárban találod a fájljait), ahol - ha még nem létezik - hozz létre egy fájlt, 404.php néven. A WordPress innentől kezdve automatikusan ennek a fájlnak a tartalmát fogja megjeleníteni a nem található oldalak esetében. A továbbiakban a terep már a tiéd, azt csinálsz itt, amit szeretnél: készíts statikus HTML oldalt, ugráljanak benne alpakák - végső soron mindegy.

A második út - ami hordozhatóbb megoldás is egyben - az, ha erre készítünk egy saját plugin-t. Hozz létre az mu-plugins mappádban egy fájlt, mondjuk redirect-404.php néven, az alábbi tartalommal:

php
<?php
/*
Plugin Name: Redirect 404
Plugin URI: https://www.webmenedzser.hu
Description: Redirect your visitor from the 404 page
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPLv3
*/

function redirect_user_on_404(){
    if( is_404() ){
        add_action('wp_head', function(){
            echo '<meta http-equiv="refresh" content="0; URL=/" />';
        });
    }
}
add_action( 'template_redirect', 'redirect_user_on_404' );

Ez a néhány sor nem tesz mást, mint figyeli, hogy 404-es oldalon vagyunk-e, és ha igen, akkor kiírja az aposztrófok közötti tartalmat a 404-es oldal fejlécébe - ez utóbbi pedig 0 másodperces késleltetéssel az URL= utáni címre irányítja a látogatót (ebben az esetben a főoldalra). Természetesen bármilyen cím szerepelhet az URL mögött, vagyis lehet egy másik oldal abszolút hivatkozása (pl.: https://www.webmenedzser.hu), vagy a saját oldaladon belül bármelyik aloldal (pl. /cikkek).

Kérdésed van, témát javasolnál, vagy jobban tudod? Írd meg bátran!