Si je veux afficher les messages dans la catégorie voyages, l'URL est
example.com/category/travel
Si je veux afficher les messages en 2007, l'URL est
exemple.com/2007
Si je veux afficher les messages de la catégorie voyages publiés en 2007, l’URL est
example.com/2007/?category_name=travel
Mes questions sont
1- Pourquoi l'URL
example.com/category/travel/?year=2007
retombe à
exemple.com/2007
et question connexe
2- Pourquoi une telle URL (pour afficher toutes les publications de la catégorie voyages publiées avant 2007) ne fonctionne-t-elle pas?
example.com/category/travel/?year<=2007
La raison derrière ceci est la façon dont la réécriture d'URL fonctionne. Quelle que soit la configuration de votre structure de lien permanent, toutes les demandes seront redirigées vers index.php
. Donc, par exemple:
example.com/category/travel
deviendra éventuellement:
example.com/index.php?cat=travel
Donc dans votre exemple:
example.com/category/travel/?year=2007
sera transformé en:
example.com/index.php?cat=travel&year=2007
et peut-être parce que le dernier argument remplace le premier, ce qui précède se transformera en ceci:
example.com/index.php?year=2007
Qui interrogera les publications publiées en 2007.
year<=2007
ne fonctionne pas?Vous ne pouvez pas transmettre les arguments de comparaison de cette façon. L'argument de requête doit avoir la même valeur, les requêtes telles que year<2000
ne sont pas valides. Vous pouvez le transmettre comme year=<2007
, mais il appartient au script de répondre à votre demande. Certains scripts peuvent être programmés pour le reconnaître, d'autres non.
À l'heure actuelle, en envoyant year<=2007
, vous indiquez au serveur que la valeur de year<
est égale à 2007
.