Processwire поєднати дві вибірки в одну

Dev CMS,CMF IT processwire 34

Є дві категорії "події" та "курси" з двума різними шаблонами.

Задача: витягнути усі документи з цих шаблонів, відсортувати за датою (показати документи тільки конкретного місяця) і вивести у зворотньому напрямку.

Для цього написав функцію:

function return_calendar_auto($input_month, $year)
{
    $month_min = strtotime("first day of $input_month $year"); // перший день місяця
    $month_max = strtotime("last day of $input_month $year"); // останній

    // date -- це назва поля
    $event = pages()->find("template=event, date>$month_min, date<$month_max, sort=date"); // сортуємо 1 вибірку
    $course = pages()->find("template=course, date>$month_min, date<$month_max, sort=date"); // сортуємо 2 вибірку

    $month = $event->and($course); // поєднуємо в один масив

    $month->sort('date'); // повторно додаємо зворотнє сортування за датою

    return_calendar($month); // ще одна функція, яка циклом виводе дані на сторінку
}

Або ж ще простіше:

function return_calendar_auto($input_month, $year)
{
    $month_min = strtotime("first day of $input_month $year"); // перший день місяця
    $month_max = strtotime("last day of $input_month $year"); // останній

    $month = pages("template=event|course, date>$month_min, date<$month_max, sort=date");

    return_calendar($month); // ще одна функція, яка циклом виводе дані на сторінку
}

Ускладнюємо задачу! Потрібно відсортувати за полем "page reference", в яке може попасти кілька значень (автор курсу або події):

$items = pages("template=event|course, speaker.title={$page->title}");