J'utilise $ wp_rewrite-> non_wp_rules
J'ai le code suivant qui fonctionne:
'name/(.*)' => 'index.php?post_type=post';
Je suis capable d'utiliser une URL du type http://mysite.com/nom_client/nom_post
avec $ wp_rewrite-> non_wp_rules, comment puis-je faire en sorte que les pages fonctionnent de la même manière.
C'est juste un exemple:
'anothername/(.*)' => 'index.php?post_type=page'; //for all pages
'anothername/(.*)' => 'page/pagename' //for one specific page
Existe-t-il un moyen de faire ressembler une page à ceci:
http://mysite/custom_name/page_name.
Les deux exemples ci-dessus me redirigent simplement vers:
http://mysite/page_name //without the slug
Je n'ai pas essayé de règles externes, mais vous pouvez y parvenir avec une réécriture interne et pagename
:
function wpd_page_rewrite(){
add_rewrite_rule(
'^anothername/([^/]*)/?',
'index.php?pagename=$matches[1]',
'top'
);
}
add_action( 'init', 'wpd_page_rewrite' );
Pour les pages parent/enfant, vous devez définir pagename
sur le chemin parent/enfant, page/pagename
, ou vous pouvez également utiliser page_id
et utiliser l'ID de la page.
EDIT - notez que vous devez effacer les règles de réécriture après en avoir ajouté de nouvelles. un moyen rapide de le faire pendant les tests consiste à visiter la page des paramètres de permaliens.