У меня есть плагин для управления событиями. (Календарь событий) Для каждого события я могу установить дату начала и органайзер (id). Я хочу отображать предстоящие события, упорядоченные по организатору и сгруппированные по дате, чтобы, когда в один и тот же день было несколько событий от разных организаторов, я мог перечислить их все. Пример:
- 26/10
- организатор событийA
- организатор событийB
- организатор событийC
- 26/11
- 26/12
- организатор мероприятияB
- организатор мероприятияC
- 26/01
Я не понимаю, как отсортировать и сгруппировать запрос. Я использую функцию плагина, которая запрашивает события, устанавливая тип сообщения и сортируя по дате события. Попробовал как предложено здесь WordPress wp_query group по настраиваемому полю
CASE 1)
function query_group_by_filter($groupby){
global $wpdb;
return $wpdb->postmeta . '.meta_value';
}
add_filter('posts_groupby', 'query_group_by_filter');
$nextEvents = tribe_get_events(
array(
'eventDisplay' => 'list',
'posts_per_page' => 10,
'start_date' => $today,
'meta_key' => '_EventOrganizerID',
)
);
remove_filter('posts_groupby', 'query_group_by_filter');
CASE 2)
$nextEvents = tribe_get_events(
array(
'eventDisplay' => 'list', 'past',
'posts_per_page' => $items,
'start_date' => $today,
'meta_key' => '_EventOrganizerID',
'order_by' => 'meta_value_num',
'order' => 'ASC'
)
);
CASE 1 только возвратдни, в которых имеется более одного события, но в которых указан только один органайзер на каждый день.
CASE 2 игнорирует порядок органайзера, сохраняет только порядок даты.