web-dev-qa-db-ja.com

標準の投稿フォーマットの投稿をクエリする方法。実際に

だから、私はどこでも見てきました。私はあらゆる種類の組み合わせを試しました。これまでのところ、何もない。私のフロントページに表示するには、1つのカテゴリではなく、最も重要な標準投稿形式の2つの投稿をクエリする必要があります。私はWP 3.9.1で働いています。これは私が使用する構文です:

$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'
                )
        ) );

それだけでは動作しません。 2つの結果が得られますが、ビデオとギャラリーのフォーマットは処理されません。私はtax_query => array (.....)の使用も試みましたが、まったく結果が出ませんでした。

最初のケースでは、$query->have_postsはすべてのフォーマットのすべての投稿を返します。 2番目のケースでは、コンテンツをまったく返しません。

2
Alevalentini

納税申告書の構文が少しずれているようです。これを試して:

$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'
           ) )
       );

(注意:これらの投稿フォーマットの一部を使用していない場合は、それらを 'terms'配列から削除することをお勧めします。ただし、目標が '通常の'フォーマットのみを表示することである場合は、そのまま使用します。将来のコンテンツ変更の場合)

6
jack

WordPress 4.1以降、 WP_Tax_Query は分類法の問い合わせにNOT EXISTS演算子をサポートします。 形式が指定されていない場合に限り、投稿は "標準"形式になります。これは、標準投稿形式 で投稿をクエリするのに推奨される方法です。また、投稿フォーマットが追加、削除、変更される可能性がある将来/カスタマイズのケースについても説明します。結果として得られる分類クエリは、単純に次のとおりです。

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

これをクエリ例で使用すると、次のようになります。

$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