web-dev-qa-db-ja.com

分類法でメタ値を使用してカスタム投稿タイプオブジェクトをクエリする

メタキーbookとメタ値langを使用して、カスタム分類法book_tags内の投稿タイプenからすべての投稿を取得する必要があります。

私のコード:

<?php 
$args = array( 
    'post_type'      => 'book',
    'posts_per_page' => 40,
    'paged'          => "$paged", 

    'meta_query'     => array(
        array( 
            'key'     => 'lang',
            'value'   => 'en',
            'compare' => 'LIKE'
        )
    ),
    'tax_query' => array(
        array(
            'taxonomy' => 'book_tags',
            'field'    => 'slug',
            'terms'    => get_queried_object()->slug
        )
    )
);

$additional_loop = new WP_Query($args); 

while ($additional_loop->have_posts()) : 
    $additional_loop->the_post();

これはうまくいきませんか?どうして?

"meta_query"を削除してもうまくいきます。 meta_queryにバグはありますか?

2
kytdesigner

あなたのコメントでは、カスタム分類ページにメタキーlang=enを含む投稿が欲しいと言ったので、それをする最も簡単な方法はその前に pre_get_posts でクエリをフィルタリングすることです実行されます。

function wpa_107371_meta_query( $query ) {
    if ( is_admin() || ! $query->is_main_query() )
        return;

    // only change the query on a custom taxonomy
    // can check for a specific taxonomy if desired
    if ( is_tax() ) {
        //define our meta query
              $meta_query = array(
                    'key'=>'lang',
                    'value'=>'en',
                    'compare'=>'=',
                );
         $query->set('meta_query',$meta_query);
        return;
    }

}
add_action( 'pre_get_posts', 'wpa_107371_meta_query' );
1
helgatheviking