web-dev-qa-db-fra.com

Comment faire une réécriture d'URL de base sans redirection

Si j'utilise le code simple ci-dessous:

function my_custom_rewrite_rules() {
    add_rewrite_rule(
        '^rewriteme$',
        'index.php?page_id=1',
        'top'
    );
}
add_action('init', 'my_custom_rewrite_rules');

Je m'attendrais à pouvoir visiter http://example.com/rewriteme et voir le contenu du message Hello World tout en conservant /rewriteme dans la barre d'adresse. Cela ne fonctionne pas, cependant. C'est en fait redirige vers http://example.com/hello-world/.

Comment l'obtenir pour qu'il affiche le contenu de la publication Hello World sans modifier réellement l'URL dans la barre d'adresse?

(Et oui, j'ai rincé les règles de réécriture.)

1
Pete

Si vous voulez juste voir le contenu de la publication /hello-world sur la page /rewriteme, vous pouvez essayer d'ajouter quelque chose comme ceci sur le page.php de votre thème:

<?php
    if (is_page('rewriteme')) {
        // query for the about page
        $your_query = new WP_Query( 'postname=hello-world' );
        // "loop" through query (even though it's just one page) 
        while ( $your_query->have_posts() ) : $your_query->the_post();
            the_content();
        endwhile;
        // reset post data (important!)
        wp_reset_postdata();
    }
?>
1
Castiblanco