web-dev-qa-db-fra.com

Url Réécriture d'une page wordpress dynamique

J'ai un peu de mal avec wordpress, j'espère que vous pourrez m'aider :)

J'ai une sous-page que je peux appeler avec différents paramètres:

Je veux créer des URLs propres et supprimer le nom de la sous-page

Pour ce faire, j'ai essayé cette add_rewrite_rule:

function add_directory_rewrite() {
add_rewrite_tag("%symbol%", '([a-zA-Z0-9_]+)');
add_rewrite_rule('^crypto-monnaies/([a-zA-Z0-9_]+).html', '/crypto-monnaies/showcoin/?symbol=$matches[1]', 'top');
}

add_action( 'init', 'add_directory_rewrite' );

Le problème est que lorsque j'appelle l'URL réécrite, elle me redirige vers https://www.cryptolia.fr/crypto-monnaies/showcoin/ sans le paramètre

donc, premièrement, il ne devrait pas s'agir d'une redirection 301, et deuxièmement: il devrait porter le paramètre pour que je puisse le récupérer en PHP.

merci pour votre aide les gars :)

1
Olivier Bureau

merci pour votre réponse,

Donc, après avoir beaucoup creusé, ça marche:

function myplugin_rewrite_tag_rule() {
   add_rewrite_tag( '%symbol%', '([a-zA-Z0-9_]+)' );
   add_rewrite_rule( '^crypto-monnaies/([a-zA-Z0-9_]+)/?$', 'index.php?
pagename=showcoin&symbol=$matches[1]','top' );
}
add_action('init', 'myplugin_rewrite_tag_rule');

function add_query_vars( $query_vars ) {
   $query_vars[] = 'symbol';
   return $query_vars;
}
add_filter( 'query_vars', 'add_query_vars' ); 

Veuillez noter que si votre page dynamique est une page de second niveau, vous devez appeler le? Pagename = page-parent/page-enfant (avec la barre oblique).

Pour résoudre mon problème, j'ai placé la page "showcoin" au premier niveau.

1
Olivier Bureau