web-dev-qa-db-fra.com

Puis-je créer une boucle avec plusieurs types de publication et spécifier différents $ args pour chaque type de publication?

J'aimerais créer une boucle personnalisée incluant tous les types de publication: publication et vidéo. Ensuite, j'aimerais spécifier que tous les messages de type vidéo sont affichés, mais uniquement les messages de la catégorie "Vidéos".

Voici ce que je pense:

<?php
    $args=array(
        'post_type'=> array('video', 'post')
                 if( get_post_type() == 'post' ) {
                'category_name' => 'videos'
                 }      
    );
    $video_post_query = new WP_Query($args);    
?>

Je sais que cela semble étrange, mais il s’agit d’un moyen de contourner le problème, car les types de messages personnalisés sont nouveaux et que cela prendra du temps avant que je puisse prendre tous les anciens messages vidéo et les insérer dans le type de message personnalisé. Même si je n'avais pas ce problème, je pense néanmoins qu'il serait utile de savoir comment définir une boucle à plusieurs types de publication qui spécifie des paramètres différents pour chaque type de publication.

1
matt

Puis-je créer une boucle avec plusieurs types de publication et spécifier différents $ args pour chaque type de publication?

Autrement dit, vous ne pouvez pas avoir une seule instance de requête avec trois jeux d'arguments différents. La raison en est assez simple, la classe de requête ne prendra qu'un tableau d'arguments par instance.

Si vous souhaitez des ensembles de résultats différents, vous avez besoin de requêtes supplémentaires. Et parfois, parfois, regrouper tout dans une requête n'est pas nécessairement le moyen le plus efficace de récupérer les données.

Je ne travaille pas sur des sites Web à fort trafic pour avoir une idée réelle des requêtes qui fonctionnent le mieux en termes de performances. Je voulais simplement souligner, le fait d'avoir une requête ne signifie pas nécessairement être plus efficace.

2
t31os