web-dev-qa-db-fra.com

Utilisation de add_rewrite_rule () pour rediriger vers la page d'accueil

J'utilise une page statique pour ma page d'accueil. C'est un modèle personnalisé. Sur mon modèle personnalisé, j'utilise WP_Query () pour afficher une liste de publications. J'ai aussi une taxonomie personnalisée appelée "Types" que j'utilise dans mes publications.

J'utilise add_rewrite_rule () pour rediriger http://example.com/types/example vers ma page d'accueil statique. Ma réécriture ressemble à:

add_rewrite_rule('^types/([^/]*)/?', 'index.php?page_id=24&type=$matches[1]', 'top'); 

La réécriture "fonctionne", mais elle redirige vers http://example.com . Si je désactive la page de garde statique dans wordpress, la redirection fonctionne parfaitement.

Est-il possible d'utiliser add_rewrite_rule () avec une page de garde statique wordpress?

1
Ryan M

J'ai trouvé la solution dans ce fil de discussion: Comment empêcher la réécriture de la page d'accueil par défaut sur une page statique

Il suffit de désactiver la redirection canonique pour la page d'accueil:

function disable_canonical_redirect_for_front_page( $redirect ) {
    if ( is_page() && $front_page = get_option( 'page_on_front' ) ) {
        if ( is_page( $front_page ) )
            $redirect = false;
    }

    return $redirect;
}
add_filter( 'redirect_canonical', 'disable_canonical_redirect_for_front_page' );
1
user1383029