• Hello, I have created something like Event manager with CPT + ACF. So I am using the “event_date” custom field (type datepicker), which could be simply different from publish_date (coming from WP core…).

    I need to do two things now
    1. Filter CPT, which are next, and which are past (based on $today variable – if greather than -> next, else past) – THIS IS DONE
    2. Order posts by ACF – “event_date”, now my posts are ordered by publish date, which is not correct.

    This is my code:

    function lava_show_next_events($query) {
        //var_dump($query);
        $today = date('Ymd');
        
        $meta_query = $query->get( 'meta_query' );
    
        if ( ! $meta_query ) {
            $meta_query = [];
        }
    
        $meta_query[] = 
            array(
                'key' => 'datum_zaciatku',
                'value' => $today,
                'compare' => '>',
                'order_by' => 'datum_zaciatku',
                'order' => 'ASC'
            );
    
        //var_dump($meta_query);    
    
        $query->set( 'meta_query', $meta_query );
        //var_dump($query);
    }
    
    add_action( 'elementor/query/lava-next-events', 'lava_show_next_events',10 );

    I am using Elementor with query ID, so I am trying to catch the query of CPT and update ordering. I was able to filter only future events, however ordering by ACF doesn’t work.

    Note: datum_zaciatku means event_date ??

Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Filtering and ordering by ACF’ is closed to new replies.