Advanced Custom Fields; standaard WordPress loop aanpassen door middel van een filter

Via onderstaand stukje code heb ik de loop voor de Custom Post Type ’trainingsdata’ aangepast. Deze wordt nu gesorteerd op een advanced custom field, genaamd ‘datum’. Daarnaast toon ik alleen items die in de toekomst liggen via een extra meta query:

// Andere sortering voor CPT trainingsdata frontend
function my_pre_get_posts( $query ) {
    // pas de query niet aan voor de backend
    if( is_admin() ) {
        return $query;
    }
    // pas alleen de query aan voor custom post type 'trainingsdata'
    if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'trainingsdata' ) {
    // Filter op Advanced Custom Field 'datum'
    $query->set('orderby', 'meta_value');
    $query->set('meta_key', 'datum');
    $query->set('order', 'Asc');
    // Toon alleen items die in de toekomst liggen
    $today = current_time('Ymd');
    $meta_query[] = array(
        'key'       => 'datum',
        'value'     => $today,
        'compare'   => '>=',
    );
    $query->set('meta_query', $meta_query);
}
// return
return $query;
}

add_action('pre_get_posts', 'my_pre_get_posts');