web-dev-qa-db-ja.com

メタキーを使用した投稿とカスタム投稿タイプのクエリ

私のホームページのスライダーでオールイベントカレンダーのカスタム投稿タイプai1ec_eventと通常のワードプレス投稿をクエリしようとしています。それはかなりうまくいきます。

今、私はカスタムフィールド値 "teaser"を持つ投稿のみをクエリしたいのですが、それはイベントではなく通常の投稿のみを返します。

<?php
query_posts( array(
'post_type'=>array('post','ai1ec_event'),   
'posts_per_page' => 50,
'meta_query' => array(
    array(
        'key' => 'teaser',
        'value' => 'on'        
    )
)
);
?>

投稿タイプのクエリを省略しても

<?php
query_posts( array(
'meta_query' => array(
    array(
        'key' => 'teaser',
        'value' => 'on'        
    )
)
);
?>

投稿のみが返され、イベントは返されません。

1

WP_Queryが(カスタムフィールドを含む投稿)または(ailec_even)を取得できないのですが。あなたは、2番目のものよりも最初のものをクエリし、それらの配列をマージする必要があります。 query_postsの代わりに WP_Query を使用してください。

私のローカルインストールで試してみただけで、このコードは12の作品のindex.phpから呼び出されました。

$events_query = new WP_Query( array('post_type' => array('ai1ec_event', 'post'), 'meta_query' => array( array( 'key' => 'teaser', 'value' => 'on' ) )) );
while ( $events_query->have_posts() ) :
    $events_query->the_post();
    echo get_the_title() . '<br/>';
endwhile;

両方(ポストエンドイベント)が管理者ユーザによって作成されたと言わなければなりません - 私はコードをチェックしました、そしてカスタム機能を持つ広範囲な部分があります。

2
david.binda