saalon
  • 0
Новичок

Поиск сообщений по значению дочернего сообщения

  • 0

Я создаю плагин, который добавляет два пользовательских типа сообщений, один из которых всегда будет потомком другого. Родительский тип записи предназначен для событий, дочерний — для выступлений. Прежде чем войти в цикл, я хотел бы иметь возможность найти набор событий, в которых есть выступления в определенную дату. Дата выступления хранится в виде метаполя в сообщении Performance. Цикл затем будет перечислять каждое совпадающее событие, как в стандартном цикле пост-архива.

Я предпочитаю запрашивать тип сообщения Event, так как мне кажется, что это проще для управления разбиением на страницы, но если есть лучшая реализация, которая просто включает запрос выступлений, я открыт для этого, но я хотел бы посмотреть, есть ли средство для ограничения запроса на основе поля в дочернем сообщении.

Share
  1. Дочерние сообщения связаны с их родителями (через поле «post_parent»), а не наоборот. Таким образом, вам придется сначала запросить тип вашего дочернего сообщения, а затем получить родителей всех результатов.

    // obviously these variable names and key names might not apply,
    // change them as necessary
    $performances = get_posts( array(
         'meta_key' => 'the_performance_date_custom_field',
         'meta_value' => $date,
         'post_type' => 'performance' ) );
    
    // extract the parent post ID's from each of the returned performances   
    $event_ids = array_map( 
         create_function('$post','return $post->post_parent'), 
         $performances );
    $event_ids = array_unique( $event_ids ); // dump any duplicate events
    
    // and finally, get the events from their ids
    $events = get_posts( array(
        'post_type' => 'event',
        'post__in' => $event_ids ) );
    
    • 0

Оставить ответ

You must login to add an answer.