Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

If I were to take a standard query post.

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

Only this time I would like to query the post by 2 custom fields that it may contain.

<?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(); ?>

That doesn't work. Is something like this possible and how is it done?

Any ideas?

Marvellous

share|improve this question
1  
accepting answers to your previous questions would be a good idea –  anu Mar 3 '11 at 17:38
add comment

1 Answer

up vote 5 down vote accepted

To query posts by custom fields you can use the 'meta_query' parameter

<?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(); ?>

you can't use get_post_meta inside the query because it gets you the value and not the key and also it accepts a Post ID to get that value of and before the query $post->id is not in the scope.

share|improve this answer
    
yup, this is better than my (deleted) answer - meta_query is the way to go for multiple custom key querying –  anu Mar 3 '11 at 17:51
    
Marvellous well done. You are missing a bracket though. You need .. )); query_posts($args) .. –  Robin I Knight Mar 3 '11 at 18:01
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.