J'essaie de créer de jolies URL pour les liens interrogeant plusieurs taxonomies. J'utilise le plugin "Taxonomy drill-down", bien que l'utilisation principale soit maintenant intégrée @ le noyau a encore quelques fonctions utiles pour la création de modèles :)
Un exemple d'URL interrogeant plusieurs taxonomies (fonctionnant) serait: domain.com/?tax1=foo&tax2=bar
Mon objectif est d'avoir des liens tels que - domain.com/tax1/foo/tax2/bar - en traduisant l'exemple ci-dessus.
tax1/2 = nom de taxonomie
toto/bar = terme requis
Je suis tombé sur Exemples de WP Rewrites mais je pense que je crains avec ces modèles et quelque chose comme:
$newrules['tax1/(.*)/tax2/(.*)/'] = 'index.php?tax1=$matches[1]&tax2=$matches[2]';
ne semble pas fonctionner (c'est juste une partie de la fonction entière basée sur l'exemple de Wordpress)
Des idées? :)
(.*)
correspond à tout, donc il "dévorera" les caractères supplémentaires (c'est "gourmand"). Si l'URL est /tax1/foo/tax2/bar/
, le premier (.*)
sera foo/tax2/bar/
; il ne reste donc plus rien pour la deuxième correspondance.
Au lieu de (.*)
, vous pouvez utiliser la version "non-gourmande" (.+?)
. Cela correspond autant que possible, mais gardez toujours le reste à l'esprit. Vous pouvez également utiliser la version encore plus stricte ([^/]+)
: elle correspondra à toutes les étapes jusqu'au prochain /
- mais cela ne fonctionnera pas pour les catégories imbriquées. Par conséquent, /category/fruit/banana/tag/flies/
ne se divisera pas en fruit/banana
et flies
comme vous pouvez vous attendre.
Si vous voulez jouer avec les règles de réécriture, je vous recommande d’installer mon plug-in Rewrite analyzer . Il vous permet de voir les règles de réécriture actuelles et de jouer avec les URL pour voir quelles règles correspondent.