The scenary:
I'm working in a review system for WordPress, a game review website. It uses default posts, that when under "review" category, shows the review's meta fields (from ACF plugin). It's pretty usual, no secrets.
The difference: using a custom post type, other page will "catch" data from reviews and show the average score of that game, from X reviews.
So, if I have two reviews of "Mortal Kombat", the general info page - a custom post "game" - will query for reviews with the slug "review-mortal-kombat-snes", calculate the average score in each criteria (graphics, sound, etc) and show it as graphic information.
The review system is ready and working fine, but I have a problem to catch only the reviews data at the "game" page. This is the WP_Query that I trying to use to find reviews:
$args = array(
'numberposts' => -1,
'post_type' => 'post',
'post_status' => 'publish',
'category_name' => 'review',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'acf_gametitle',
'value' => $newtitle,
'compare' => '='
),
array(
'key' => 'acf_platform',
'value' => $catconsole,
'compare' => '='
)
)
);
$the_query = new WP_Query( $args );
"acf_gametitle" is a meta field with the name of the game (from reviews).
$newtitle stores the name of the game (from the game page).
"acf_platform", of course, stores the platform (SNES, Sega Genesis, etc).
$catconsole stores the custom category of the game page (the platform name).
What I need:
First, query for post type "post", with the category "review", where the custom field "acf_gametitle" have the same value of the var $newtitle from the game page.
So, if the page is about "Mortal Kombat", it must find all reviews with the title "Mortal Kombat".
AND second: the custom field "acf_platform" from review must have the same value of the var "$catconsole".
So, it will not get values from reviews of Mortal Kombat to SNES and arcade - only the proper platform.
It's not working, keeps giving me data from reviews of all consoles: Mortal Kombat from SNES and arcade are counted as "two reviews for Mortal Kombat" at the SNES page of the game:
$string_count = $the_query->found_posts;
echo $string_count;
Is there anything wrong? Thanks in advance for any help.
$catconsole
set? Is it what your posts have as meta value? BTW, you really should consider moving from metas to a custom taxonomy, which you add for pages as well as posts.