Support

Account

Home Forums ACF PRO ACF Relationship multiple meta query

Solved

ACF Relationship multiple meta query

  • 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' => '>='
                        ),
                    ),
    
                ));
  • Great! This one works! Thank you!

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.