Comment empêcher la réécriture à la maison par défaut sur une page statique

4

Je cherche un moyen d'empêcher le comportement par défaut (lorsque vous avez une page statique définie comme page d'accueil du site ou "page d'accueil" (dans settings>reading>front page displays );

Je veux que la page domain.com/ pointe ici (comme c'est le cas), mais si je créais une page home , qui vivrait sinon à domain.com/home , Wordpress redirige automatiquement vers domain.com , il n'y a donc aucun moyen de visiter et de rester sur domain.com/home .

Quelqu'un at-il une idée de comment / où faire cela? J'ai essayé d'analyser les variables php $_SERVER et d'essayer de modifier les règles de réécriture, mais je n'y trouve pas de règle qui corresponde de manière fiable à cette situation. (Il existe une règle pour une page portant le home page id , mais je ne peux pas cibler cette cible de manière fiable (et je pense que le routage concerne en fait domain.com/ - > domain.com/home .)

Pour réitérer (et peut-être clarifier), comment rendre la 'page de garde' de wordpress disponible à la racine du domaine (par défaut et active), mais également au permalien par défaut de la page ...

    
posée josh 14.04.2015 - 12:36

2 réponses

6

La redirection s'effectue grâce à redirect_canonical() - nous pouvons simplement utiliser un filtre pour le désactiver et le désactiver au premier plan. page:

function wpse_184163_disable_canonical_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', 'wpse_184163_disable_canonical_front_page' );

Vous pouvez désormais accéder à la page d'accueil à la racine et par l'intermédiaire de son slug, sans aucune redirection.

    
réponse donnée TheDeadMedic 14.04.2015 - 15:50
0

Si je vous ai bien compris, vous avez simplement besoin de votre domain.com/home pour afficher votre page d'accueil? Créez simplement ceci dans un dossier appelé home dans le même dossier que votre /wp-content etc.

Nommez-le index.php

?php
    header("Location: http://domain.com");
    exit();
?>
    
réponse donnée Bysander 14.04.2015 - 13:41

Lire d'autres questions sur les étiquettes