Dans l’exemple nous avons besoin que la totalité de nos articles possède le schéma suivant :

  • URL du site
  • news
  • nom du post

Mais qu’une fois la structure changée, toutes les URLs ne soient pas en 404.

Hook template_redirect

L’objectif du hook est de détecter quand une URL répond en 404, si c’est le cas on cherche le slug du post et si cela correspond à un poste en base de données on le redirige avec notre préfixe.

Cela fonctionne avec tout les préfixes !

function add_prefix() {
    global $wp;

    if(is_404()){
        $url = home_url( $wp->request );
        $segments = explode('/', parse_url($url, PHP_URL_PATH));
        $last_segment = end($segments);

        $post_slug = get_page_by_path($last_segment, OBJECT, 'post');
        if ($post_slug) {
            $post_id = $post_slug->ID;
            wp_redirect(( get_permalink($post_slug->ID) ), 301 );

        } else {
        //on sait jamais
        }
    }
}
add_filter( 'template_redirect', 'add_prefix' );
0 0 votes
Article Rating
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires