web-dev-qa-db-fra.com

Interroger le type d'article personnalisé par taxonomie personnalisée (catégorie slug)

J'ai suivi plusieurs solutions liées. Mais je suis toujours confronté au problème. J'ai appliqué le code suivant pour ma requête de publication personnalisée par taxonomie (catégorie). Mais ça ne marche pas. Je pense que mon problème avec les "termes".

$terms = get_terms('service_cat');
$services_post = new WP_Query(array(
    'post_type'         => 'service',
    'posts_per_page'    => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'service_cat',
            'field' => 'cat1',
            'terms' => $terms
        )
    ),
));

J'ai aussi essayé par le code suivant

$services_post = new WP_Query(array(
            'post_type'         => 'service',
            'posts_per_page'    => -1,
            'category_name'     => 'cat1' 
))
1
Md Jwel Miah

Modifié pour refléter la question dans le commentaire d'OP .

Le contenu du tableau tax_query n'est pas tout à fait correct: lorsque vous interrogez par slug, le paramètre field de la requête de taxonomie individuelle doit être "slug".

Actuellement, vous recherchez essentiellement toutes les publications service de toutes les catégories de services (enfin, même pas, car get_terms renvoie des objets, mais quand même).

Pour interroger un ou plusieurs termes spécifiques à partir desquels charger des publications, spécifiez les termes dans le tableau terms. tax_query est ensuite analysé en conséquence.

$services_post = new WP_Query( array(
    'post_type'         => 'service',
    'posts_per_page'    => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'service_cat',
            'field' => 'slug',
            'terms' => array( 'cat1' ) // Array of service categories you wish to retrieve posts from
        )
    ),
) );

En passant, je suppose que vous voulez récupérer tous les messages de type message service

1
engelen