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?
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' );