J'essaie actuellement d'obtenir le lien
example.com/subdir/StackExchange/
agir comme un lien avec par exemple une balise de site supplémentaire:
example.com/subdir?website=StackExchange
J'ai mis en place une RewriteRule dans le .htaccess qui ressemble à ceci:
RewriteRule ^subdir/(.*)/$ subdir.php?website=$1 [L]
Lorsque j'utilise des nombres (example.com/subdir/123/
), echo $_GET["website"]
renvoie avec succès "123". Dès que j'utilise des lettres alphabétiques (example.com/subdir/abc/
), cela ne fonctionne pas .
Comment puis-je changer cela? Est-ce un problème avec WordPress? J'ai défini l'option "permalink" dans le tableau de bord des paramètres WordPress sur "Post name". J'ai aussi essayé d'autres méthodes, mais rien n'a changé.
Laissez .htaccess
seul. Vous pouvez utiliser WordPress pour réécrire l'API .
add_action( 'init', function(){
return add_rewrite_rule(
'subdir/([^/]+)/?$', // ([^/]+) takes alphanumeric, while ([0-9]+) accepts digits
'index.php?pagename=subdir&website=$matches[1]',
'top'
);
});
add_filter('query_vars', function($v){ return array_merge(array('website'),$v); });
Tout d’abord, assurez-vous que subdir
est un slug de page valide, dans cet exemple. Après avoir enregistré ce code dans le fichier de fonctions ou le plug-in de votre thème enfant, vous pouvez désormais utiliser get_query_var('website')
pour obtenir la propriété website
plutôt que d'utiliser $_GET
global.
J'espère que cela pourra aider.