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.

I have a custom WP query that is returning every post, instead of just the ones being specified by the query. I can't seem to find anything wrong with the code, so I must be missing something:

//Process incoming variable
if(!empty($_REQUEST['region'])){
     $region = $_REQUEST['region'];
 } else {
     $region = NULL;
 }
if (empty($region)) {
    echo "No region selected";

//Search Region table to retrieve array of country names
}else{
    $regionresult = mysql_query("SELECT * FROM gallery_regions WHERE region='$region'") or die(mysql_error());
    $num_rows = mysql_num_rows($regionresult);
    if (!$regionresult) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}

// Process search reults and format array contents for WP Query
$country_search_array = array();
while($row = mysql_fetch_array($regionresult)){
    $country_search_array[] = $row['country']; 
}
$country_search = "'".implode("','", $country_search_array)."'";

//Build WP query    
$args = array(
    'posts_per_page' => '-1',
    'cat' => '4',
    'meta_query' => array(
        array(
        'meta_key' => 'Country-2',
        'meta_value' => $country_search,
        'compare' => '='
        )
    )
);
$country_query = new WP_Query( $args );

//Some output for troubleshooting purposes
$num = $country_query->post_count;
print_r ($country_search); echo "<br><br>";
print_r ($num);echo " Posts Returned.<br><br>";

// The Loop
while ( $country_query->have_posts() ) : $country_query->the_post();
    the_title(); echo"<br>";
endwhile;

// Reset Everything
wp_reset_postdata();
wp_reset_query();
mysql_free_result($regionresult);

If this looks familiar, it's because I've posted other questions related to this project, so I apologize if it seems repetitious. This is the last hurdle, though.

As always, any help is appreciated.

Thanks!

ty

UPDATE - Here is the actual query, as it is generated by print_r:

WP_Query Object
(
    [query_vars] => Array
        (
            [posts_per_page] => -1
            [cat] => 4
            [meta_query] => Array
                (
                    [0] => Array
                        (
                            [meta_key] => Country
                            [meta_value] => 'Algeria','Angola','Benin','Botswana','Burkina Faso','Burundi','Cape Verde','Central African Republic','Chad','Comoros','Congo','Ivory Coast','Djibouti','Egypt','Eritrea','Ethiopia','Gabon','Gambia','Ghana','Kenya','Lesotho','Liberia','Libya','Madagascar','Malawi','Mauritania','Mauritius','Morocco','Mozambique','Nambia','Niger','Nigeria','Reunion','Rwanda','Sao Tome & Principe','Senegal','Seychelles','Sierra Leone','Somalia','South Africa','Sudan','Swaziland','Tanzania','Togo','Tunisia','Uganda','Zaire','Zambia','Zimbabwe'
                            [compare] => IN
                        )

                )

            [error] => 
            [m] => 0
            [p] => 0
            [post_parent] => 
            [subpost] => 
            [subpost_id] => 
            [attachment] => 
            [attachment_id] => 0
            [name] => 
            [static] => 
            [pagename] => 
            [page_id] => 0
            [second] => 
            [minute] => 
            [hour] => 
            [day] => 0
            [monthnum] => 0
            [year] => 0
            [w] => 0
            [category_name] => gallery
            [tag] => 
            [tag_id] => 
            [author_name] => 
            [feed] => 
            [tb] => 
            [paged] => 0
            [comments_popup] => 
            [meta_key] => 
            [meta_value] => 
            [preview] => 
            [s] => 
            [sentence] => 
            [fields] => 
            [category__in] => Array
                (
                    [0] => 4
                )

            [category__not_in] => Array
                (
                )

            [category__and] => Array
                (
                )

            [post__in] => Array
                (
                )

            [post__not_in] => Array
                (
                )

            [tag__in] => Array
                (
                )

            [tag__not_in] => Array
                (
                )

            [tag__and] => Array
                (
                )

            [tag_slug__in] => Array
                (
                )

            [tag_slug__and] => Array
                (
                )

            [ignore_sticky_posts] => 
            [suppress_filters] => 
            [cache_results] => 1
            [update_post_term_cache] => 1
            [update_post_meta_cache] => 1
            [post_type] => 
            [nopaging] => 1
            [comments_per_page] => 50
            [no_found_rows] => 
            [order] => DESC
        )

    [tax_query] => WP_Tax_Query Object
        (
            [queries] => Array
                (
                    [0] => Array
                        (
                            [taxonomy] => category
                            [terms] => Array
                                (
                                    [0] => 4
                                )

                            [include_children] => 
                            [field] => term_id
                            [operator] => IN
                        )

                )

            [relation] => AND
        )

    [meta_query] => WP_Meta_Query Object
        (
            [queries] => Array
                (
                    [0] => Array
                        (
                            [meta_key] => Country
                            [meta_value] => 'Algeria','Angola','Benin','Botswana','Burkina Faso','Burundi','Cape Verde','Central African Republic','Chad','Comoros','Congo','Ivory Coast','Djibouti','Egypt','Eritrea','Ethiopia','Gabon','Gambia','Ghana','Kenya','Lesotho','Liberia','Libya','Madagascar','Malawi','Mauritania','Mauritius','Morocco','Mozambique','Nambia','Niger','Nigeria','Reunion','Rwanda','Sao Tome & Principe','Senegal','Seychelles','Sierra Leone','Somalia','South Africa','Sudan','Swaziland','Tanzania','Togo','Tunisia','Uganda','Zaire','Zambia','Zimbabwe'
                            [compare] => IN
                        )

                )

            [relation] => AND
        )

    [post_count] => 1047
    [current_post] => -1
    [in_the_loop] => 
    [comment_count] => 0
    [current_comment] => -1
    [found_posts] => 0
    [max_num_pages] => 0
    [max_num_comment_pages] => 0
    [is_single] => 
    [is_preview] => 
    [is_page] => 
    [is_archive] => 1
    [is_date] => 
    [is_year] => 
    [is_month] => 
    [is_day] => 
    [is_time] => 
    [is_author] => 
    [is_category] => 1
    [is_tag] => 
    [is_tax] => 
    [is_search] => 
    [is_feed] => 
    [is_comment_feed] => 
    [is_trackback] => 
    [is_home] => 
    [is_404] => 
    [is_comments_popup] => 
    [is_paged] => 
    [is_admin] => 
    [is_attachment] => 
    [is_singular] => 
    [is_robots] => 
    [is_posts_page] => 
    [is_post_type_archive] => 
    [query_vars_hash] => 859f71690a2d92bf36791d7332bf2dbc
    [query_vars_changed] => 
    [thumbnails_cached] => 
    [query] => Array
        (
            [posts_per_page] => -1
            [cat] => 4
            [meta_query] => Array
                (
                    [0] => Array
                        (
                            [meta_key] => Country
                            [meta_value] => 'Algeria','Angola','Benin','Botswana','Burkina Faso','Burundi','Cape Verde','Central African Republic','Chad','Comoros','Congo','Ivory Coast','Djibouti','Egypt','Eritrea','Ethiopia','Gabon','Gambia','Ghana','Kenya','Lesotho','Liberia','Libya','Madagascar','Malawi','Mauritania','Mauritius','Morocco','Mozambique','Nambia','Niger','Nigeria','Reunion','Rwanda','Sao Tome & Principe','Senegal','Seychelles','Sierra Leone','Somalia','South Africa','Sudan','Swaziland','Tanzania','Togo','Tunisia','Uganda','Zaire','Zambia','Zimbabwe'
                            [compare] => IN
                        )

                )

        )

    [request] =>  SELECT   alere_posts.* FROM alere_posts  INNER JOIN alere_term_relationships ON (alere_posts.ID = alere_term_relationships.object_id) WHERE 1=1  AND ( alere_term_relationships.term_taxonomy_id IN (4) ) AND alere_posts.post_type = 'post' AND (alere_posts.post_status = 'publish' OR alere_posts.post_status = 'private') GROUP BY alere_posts.ID ORDER BY alere_posts.post_date DESC 

[posts] => Array (…
share|improve this question
1  
The meta_key in your query is Country-2 and the meta_key in the actual query output shown is Country - would this have anything to do with it? –  userabuser Jun 25 '12 at 15:46
add comment

2 Answers

I think you're confusing old meta parameters with new meta_query parameters. meta_key should be just key and meta_value should be just value. Refer to WP_Query in Codex for correct syntax.

Also, print_r( $country_query ); will show you the actual SQL query being sent to the database and will show you where you're going wrong.

share|improve this answer
    
If I remove the meta, I get no results. I've updated my post to show the actual query. –  Ty Morton Jun 25 '12 at 15:21
    
@TyMorton Did you do as Milo suggests and change meta_key/meta_value to key/value within the meta_query array? As you didn't specify, rather you're speaking of "removing the meta" which doesn't make sense or am I misinterpreting? –  userabuser Jun 25 '12 at 15:33
add comment
up vote 0 down vote accepted

Thanks for all of the help!

It tured out to be a combination of issues:

  1. Instead of imploding the $country_search_array, it needs to be added as is to the query.
  2. Since it's an array, we can't use the '=' for the compare value. It needs to be 'IN'

I couldn't have figured it out without the assistance I received here. Again, thanks!

share|improve this answer
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.