web-dev-qa-db-fra.com

Filtrer les archives de blog par catégorie dans l'URL

J'ai créé un formulaire assez basique qui permet aux utilisateurs de filtrer les archives de type publication en fonction de leur taxonomie.

Sur les types de publication personnalisés, il est très simple de définir ?taxonomy_name=term_slug dans l’URL. WP prend également en charge un tableau de termes avec ?taxonomy_name[]=term_slug1&taxonomy_name[]=term_slug2.

Ce qui est étrange, c’est que, dans l’archive pour les types de publication non custom (c’est-à-dire le type de publication "post"), cela cesse de fonctionner. Régler ?category=term_slug ne fait absolument rien.

Comment puis-je, de préférence sans utiliser pre_get_posts ou quoi que ce soit plus évolué, filtrer les publications classiques en fonction de leur taxonomie (category et post_tag)?

1
powerbuoy

Même si les publications par défaut sont stockées dans la même table mais que leur comportement et leurs caractéristiques sont différents. CPT a une archive de type de publication, mais le type de publication par défaut archivé est appelé blog et le filtre de taxonomie est appelé archive de catégorie/tag.

Vous pouvez accéder à l’archive des catégories/balises en utilisant

Pour les catégories:

/?cat={category_id} //e.g. ?/cat=5

Pour les tags:

/?tag={tag_slug} //e.g. ?/tag=my_tag_slug

Si vous êtes prêt à utiliser pre_get_posts, vous pouvez le personnaliser comme vous le souhaitez ( C’est ce que j’adore dans WordPress <3 ), sinon vous vous en tenez à la méthode par défaut.

Une autre remarque: je recommande de laisser les publications par défaut pour blog, ne les utilisez jamais pour créer quelque chose de personnalisé avec ces types, utilisez plutôt CPT autant que vous le souhaitez pour dépenser votre site de blog en CMS :)

0
Sumit