web-dev-qa-db-fra.com

Comment interroger les publications de format standard Pour de vrai

Donc, je cherchais PARTOUT. J'ai essayé tous les types de combinaisons. Jusqu'à présent rien. Je dois interroger deux publications à afficher sur ma page d'accueil, de type de publication, pas dans une catégorie, mais surtout dans le format standard. Je travaille avec wp 3.9.1. C'est la syntaxe que j'utilise:

$query = new WP_Query( array(
            'post_type' => 'post',
            'cat' => '-1',
            'posts_per_page' => 2,
            array(
                'taxonomy' => 'post_format',
                'field' => 'slug',
                'terms' => array( 'post-format-gallery', 'post-format-video' ),
                'operator' => 'NOT IN'
                )
        ) );

Cela ne fonctionne tout simplement pas. J'obtiens deux résultats, mais les formats vidéo et galerie ne sont pas traités. J'ai aussi essayé d'utiliser tax_query => array (.....) sans résultat du tout.

Dans le premier cas, le $query->have_posts renvoie toutes les publications de tous les formats. Dans le second cas, il ne renvoie aucun contenu.

2
Alevalentini

Il semble que votre syntaxe soit un peu compliquée pour la requête fiscale. Essaye ça:

$query = new WP_Query( array(
        'post_type' => 'post',
        'cat' => '-1',
        'posts_per_page' => 2,
        'tax_query' => array( array(
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'terms' => array('post-format-aside', 'post-format-gallery', 'post-format-link', 'post-format-image', 'post-format-quote', 'post-format-status', 'post-format-audio', 'post-format-chat', 'post-format-video'),
            'operator' => 'NOT IN'
           ) )
       );

(A part: si vous n'utilisez pas certains de ces formats de publication, vous pouvez les supprimer du tableau "terms". Mais si l'objectif est d'afficher uniquement le format "normal", vous voudrez peut-être les laisser tous là. cas de changements de contenu futurs.)

6
jack

Depuis WordPress 4.1, WP_Tax_Query prend en charge l’opérateur NOT EXISTS pour les requêtes de taxonomie. Comme une publication a le format "Standard" si et seulement si elle n’a pas de format spécifié, c’est maintenant la méthode recommandée pour interroger les publications avec le Standard format de publication . Il couvre également le cas futur/de personnalisation où des formats de publication peuvent être ajoutés, supprimés et modifiés. La requête de taxonomie résultante est simplement:

array(
    'taxonomy' => 'post_format',
    'operator' => 'NOT EXISTS',
)

En l'utilisant dans l'exemple de requête, nous obtenons:

$query = new WP_Query( array(
    'post_type' => 'post',
    'cat' => '-1',
    'posts_per_page' => 2,
    'tax_query' => array(
        array(
            'taxonomy' => 'post_format',
            'operator' => 'NOT EXISTS',
        ),
    ),
);
3
engelen