Wordpress сортировка и группировка запросов по настраиваемым полям - PullRequest
0 голосов
/ 26 октября 2019

У меня есть плагин для управления событиями. (Календарь событий) Для каждого события я могу установить дату начала и органайзер (id). Я хочу отображать предстоящие события, упорядоченные по организатору и сгруппированные по дате, чтобы, когда в один и тот же день было несколько событий от разных организаторов, я мог перечислить их все. Пример:

  • 26/10
    • организатор событийA
    • организатор событийB
    • организатор событийC
  • 26/11
    • организатор мероприятияC
  • 26/12
    • организатор мероприятияB
    • организатор мероприятияC
  • 26/01
    • организатор событийA

Я не понимаю, как отсортировать и сгруппировать запрос. Я использую функцию плагина, которая запрашивает события, устанавливая тип сообщения и сортируя по дате события. Попробовал как предложено здесь 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 игнорирует порядок органайзера, сохраняет только порядок даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...