web-dev-qa-db-fra.com

Comment filtrer par type de message personnalisé dans les pages d'archive de taxonomie

J'ai deux types personnalisés. Une appelée "Questions" et une autre appelée "Fichiers". Ils partagent tous les deux une taxonomie personnalisée appelée "Types". Tout fonctionne bien, mais si je clique sur le lien "Types" dans mon administrateur Wordpress et que je clique sur une catégorie, il répertorie tous les éléments, à la fois dans "Questions" et "Fichiers".

Existe-t-il un moyen de créer un lien afin que je puisse simplement interroger un type spécifique d'un type personnalisé au lieu des deux?

Merci beaucoup!

2
Johann

C'est le comportement normal. Si vous consultez les archives d'un terme de taxonomie, vous obtiendrez tous les messages, de tout type, avec ce terme de taxonomie.

Une solution peut être, par exemple, d’ajouter des fichiers? Custom_type = ou des questions? Custom_type = à vos URL et de modifier la requête principale dans le filtre pre_get_posts:

add_action( 'pre_get_posts', 'my_pre_get_post' );
function my_pre_get_post($query){
    if(!empty($_GET['custom_type'])){

       //limit the filter to frontend, main query and archive pages
       if($query->is_main_query() && !is_admin() && $query->is_archive ) {

          $query->set('post_type',sanitize_text_field($_GET['custom_type']));

       }

     }
}

Si vous voulez aller plus loin, vous pouvez écrire des règles de réécriture personnalisées et ajouter des vars de requête pour que ces URL soient "jolies".

3
cybmeta