Hi guys, how can i use multiple meta query values in a relationship field? I know i’m missing something but can’t figure what. This is my code, i have a post type with related events (custom post type), i need to filter out old events.
$eventi = get_posts(array(
'post_type' => 'eventi',
'posts_per_page' => -1,
'meta_key' => 'eve_start_date', //setting the meta_key which will be used to order
'orderby' => 'meta_value', //if the meta_key (population) is numeric use meta_value_num instead
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'correla_evento_a_struttura', // name of custom field
'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. This prevents a match for "1234"
'compare' => 'LIKE'
),
array (
'key' => 'eve_start_date',
'type' => 'DATE', // You can also try changing it to TIME or DATE if it doesn't work
'value' => date( "j F Y" ), // deve coincidere con output usato x data -> http://www.korian.it/wp-admin/post.php?post=11522&action=edit
'meta_compare' => '>='
),
),
));
You have to tell what kind of relation it is for multiple meta querys. Use it like this 'relation' => 'XXX',
(AND
, OR
…), in the meta_query
array.
And in your query it should look like this:
$eventi = get_posts( array(
'post_type' => 'eventi',
'posts_per_page' => - 1,
'meta_key' => 'eve_start_date', //setting the meta_key which will be used to order
'orderby' => 'meta_value', //if the meta_key (population) is numeric use meta_value_num instead
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'correla_evento_a_struttura',
// name of custom field
'value' => '"' . get_the_ID() . '"',
// matches exaclty "123", not just 123. This prevents a match for "1234"
'compare' => 'LIKE'
),
array(
'key' => 'eve_start_date',
'type' => 'DATE',
// You can also try changing it to TIME or DATE if it doesn't work
'value' => date( "j F Y" ),
// deve coincidere con output usato x data -> http://www.korian.it/wp-admin/post.php?post=11522&action=edit
'compare' => '>='
),
),
) );
It doesn’t work. I searched online, used Ymd or Y-m-d format but nothing to do:
$eventi = get_posts(array(
'post_type' => 'eventi',
'posts_per_page' => -1,
'meta_key' => 'eve_start_date', //setting the meta_key which will be used to order
'orderby' => 'meta_value', //if the meta_key (population) is numeric use meta_value_num instead
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'correla_evento_a_struttura', // name of custom field
'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. This prevents a match for "1234"
'compare' => 'LIKE'
),
array(
'meta_key' => 'eve_start_date',
'type' => 'DATETIME', // You can also try changing it to TIME or DATE if it doesn't work
'meta_value' => current_time("Ymd"),
'meta_compare' => '>='
),
),
));
In meta_query
array you don´t need to use the prefix meta_
and I don´t know if it is necessary to use type
:
$eventi = get_posts(array(
'post_type' => 'eventi',
'posts_per_page' => -1,
'meta_key' => 'eve_start_date', //setting the meta_key which will be used to order
'orderby' => 'meta_value', //if the meta_key (population) is numeric use meta_value_num instead
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'correla_evento_a_struttura', // name of custom field
'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. This prevents a match for "1234"
'compare' => 'LIKE'
),
array(
'key' => 'eve_start_date',
'value' => date('Ymd'),
'compare' => '>='
),
),
));
The topic ‘ACF Relationship multiple meta query’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.