web-dev-qa-db-fra.com

Récupérer tous les messages dans la balise OR Catégorie?

J'ai créé une simple boucle. Et j'ai le tableau suivant pour la requête:

$live_tags = array(
    'tag' => 'live',
    'showposts' => 5,
    'post_type' => 'post',
    'post_status' => 'publish',
    'orderby' => 'date',
    'order' => 'DESC'
    );

Là où il est écrit 'tag' => 'live', il me faut une logique qui demande:

if ('tag' == 'live' || 'category' == 'candy')

Mais je ne sais pas comment faire cela dans le tableau WP_Query.

Quelqu'un sait comment récupérer des messages à partir de balises ou de catégories?

1
tmyie

Vous avez besoin d'un tax_query .

$live_tags = array(
  'posts_per_page' => 5, // showposts has been deprecated for a long time
  'post_type' => 'post',
  'post_status' => 'publish',
  'tax_query' => array(
    'relation' => 'OR',
    array(
      'taxonomy' => 'post_tag',
      'field' => 'slug',
      'terms' => 'live',
    ),
    array(
      'taxonomy' => 'category',
      'field' => 'slug',
      'terms' => 'candy',
    ),
  ),
  'orderby' => 'date',
  'order' => 'DESC'
);
$q = new WP_Query($live_tags);
var_dump($q->request);

Notez que les deux arguments {tax} (string) et showposts sont obsolètes depuis un certain temps. Je ne recommanderais pas de les utiliser.

4
s_ha_dum