web-dev-qa-db-ja.com

投稿の照会またはカスタムフィールドによる投稿の取得は可能ですか。

私が標準的な質問投稿をすることになっていたら。

<?php query_posts('post_type=payment'); while (have_posts()) : the_post();?>

今回だけ私はそれが含むかもしれない2つのカスタムフィールドによってポストを質問したいです。

<?php query_posts('post_type=payment'.get_post_meta($post->ID,'bookingref', true).get_post_meta($post->ID,'customerref', true) ); while (have_posts()) : the_post(); ?>

それはうまくいきません。このようなことは可能ですか、そしてそれはどのように行われますか?

何か案は?

素晴らしい

4
Robin I Knight

カスタムフィールドで投稿をクエリするには、 'meta_query'パラメータを使用できます。

<?php
$args = array(
'post_type' => 'payment',
'meta_query' => array(
        array(
            'key' => 'bookingref',
            'value' => 'the_value_you_want',
            'compare' => 'LIKE'
        ),
        array(
            'key' => 'customerref',
            'value' => 'the_value_you_want',
            'compare' => 'LIKE'
        )
);
query_posts($args); while (have_posts()) : the_post(); ?>

キーではなく値を取得するため、クエリ内でget_post_metaを使用することはできません。また、クエリの$ post-> id以前の値を取得するためにPost IDを受け取ることもできます。

13
Bainternet