web-dev-qa-db-fra.com

Vous interrogez deux taxonomies via une URL ou un lien?

Je me suis cogné la tête à ce sujet et j'ai créé une solution de contournement, mais il serait beaucoup plus agréable pour l'organisation de mon site si je pouvais comprendre cela.

Je souhaite pouvoir interroger les publications sur deux taxonomies (dont l'une est personnalisée). J'aimerais pouvoir le faire automatiquement, sans avoir à créer de modèles personnalisés avec des requêtes de base de données personnalisées.

Je souhaite avoir une taxonomie "plate-forme" et pouvoir étiqueter des articles dans des taxonomies normales (telles que "revue" ou "aperçu").

Pour le moment, j'utilise une variable Walker personnalisée qui me permet d'utiliser le système de menus intégré pour générer des menus qui pointent vers des pages d'archives spécifiques.

Mon URL ressemble à:

example.com/category/platforms/consoles-platforms/ps3+review/

Cela permet de trouver des articles qui se trouvent dans la partie PS3 des plateformes ET dans la catégorie "Révision". Actuellement, tout cela est fait dans la taxonomie normale de la catégorie 'wordpress'.

Idéalement, je souhaiterais qu'elles soient des taxonomies distinctes (les "avis" faisant partie de la taxe normale "de catégorie", puis une taxe "de plate-forme" pour l'organisation de la console) afin que l'URL ressemble à ceci:

example.com/platforms/consoles/ps3/review

Cela a l'air plus joli et me permettrait de garder mes catégories plus étroitement organisées. MAIS je ne vois pas comment vous avez configuré WordPress pour interroger automatiquement deux taxonomies.

Quelqu'un d'autre s'est-il heurté à cela?

Edit: Suivant le commentaire de Rarst, je me demande si je suis trop ambitieux avec mon besoin en URL. Je pourrais le configurer avec les paramètres GET et un seul modèle (c.-à-d. example.com?platform=ps3&type=review); est-ce la manière la plus simple/la plus robuste? Avez-vous d'autres idées sur la façon de résoudre ce problème?

3
josh

Je pense que vous pourriez le faire fonctionner avec category__and

Je me souviens d’avoir essayé une approche similaire à la vôtre et découvert que j’obtiendrais un contenu qui se trouvait soit dans la plate-forme et/ou en révision. Mais pour obtenir des postes qui ne concernaient que les deux, à l'exception des postes qui ne figuraient que dans l'un d'eux, telle était mon approche. Peut-être que la façon dont vous postez vos messages fonctionne avec cette approche, mais ce n’est pas le cas avec la mienne (qui ressemblait davantage à une ville/type d’événement/coût de l’événement).

Quoi qu'il en soit, vous pouvez passer votre combinaison d'éléments dans POST, puis, sur la page de destination, récupérez ces éléments dans le tableau:

$myFilteredArray = array();
if (isset($_POST['.... 
// Do what you need to get the POST variable elements
into the array

// and then, use this query format
query_posts( array(
            'category__and' => $myFilteredArray, 
            'orderby' => 'title',
            'posts_per_page'=>-1, 
            'order' => 'ASC')
            );   
1
Sergio Majluf