web-dev-qa-db-fra.com

si le terme de taxonomie wp_query a des posts

Après avoir formulé ma requête $ pour une taxonomie personnalisée sur un modèle de page, comment pourrais-je demander si un terme spécifique comporte des publications?

$args = array(
    'post_type' => 'exhibitions',
    'tax_query' => array(
        array(
            'taxonomy' => 'exhibition',
            'field'    => 'slug'
        ),
    )
);
$query = new WP_Query($args);

En supposant que je sois sur la bonne voie, une description verbale du type de déclarations conditionnelles que je recherche serait:

si le terme de taxonomie $ query 'current' a des posts, faites quelque chose;

elseif si le terme de taxonomie $ query 'coming' a des posts, fait autre chose;

1
simbasounds

Je ne suis pas sûr de ce dont vous avez exactement besoin, mais normalement, par défaut, get_terms renvoie uniquement les termes auxquels des publications ont été affectées.

$terms = get_terms( 'exhibition' );
var_dump( $terms );

En dehors de cela, je ne sais vraiment pas de quoi vous avez exactement besoin

0
Pieter Goosen

On dirait que vous voulez has_term() . Quelque chose comme: Nourrissez votre requête d'un tableau de termes:

$args = array(
    'post_type' => 'exhibitions',
    'tax_query' => array(
        array(
            'taxonomy' => 'exhibition',
            'field'    => 'slug',
            'terms' => array(
              'current',
              'upcoming',
            ),
        ),
    )
);
$query = new WP_Query($args);

Puis passez dessus plusieurs fois:

if ($query->have_posts()) {
  while ($query->have_posts()) {
    $query->the_post();
    if (has_term('current','exhibition')) {
      // stuff
    }
  }
}
$query->rewind_posts();
if ($query->have_posts()) {
  while ($query->have_posts()) {
    $query->the_post();
    if (has_term('upcoming','exhibition')) {
      // stuff
    }
  }
}
$query->rewind_posts();
2
s_ha_dum