Исправление пользовательского запроса для wordpress / elementor с расширенными типами сообщений поля отношения настраиваемых полей

Мне было интересно, может ли кто-нибудь мне помочь. Кажется, я не могу заставить этот случай работать (так как я новичок в PHP).

Кейс: на моем сайте wordpress есть два "типа сообщений":

  • Вебинар
  • Спрекер (спикер на нидерландском)

С помощью расширенных настраиваемых сообщений я настроил поле отношений в типе сообщения веб-семинара. Так что я могу выбрать спикеров, связанных с этим постом.

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

Теперь я не могу правильно понять этот код массива запросов.

Документация Elementor о пользовательских запросах: https://developers.elementor.com/custom-query-filter/#Using_the_Custom_Filter

Некоторые связанные ответы в Интернете (но все еще не удается заставить его работать): Пользовательский фильтр запросов для сообщений элементара по полю отношения (ACF)

Идентификатор пользовательского запроса, который я использую в Elementor, - Spreker_filter

Мой код:

add_action( 'elementor/query/spreker_filter', function( $query ) {
// Get current meta Query
$meta_query = $query->get( 'meta_query' );

// If there is no meta query when this filter runs, it should be initialized as an empty array.
if ( ! $meta_query ) {
$meta_query = [];
}

// Append our meta query
$meta_query[] = [
'key' => 'sprekers',
'value' => '"' . get_the_ID() . '"',
'compare' => 'in',
];
$query->set( 'meta_query', $meta_query );
} );

person Jules Heerkens    schedule 26.01.2021    source источник


Ответы (1)


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

add_action( 'elementor/query/retrieveLinkedCpts', function( $query ) {
    $ids = get_field( 'my_relationship_field', false, false );
    $query->set( 'post__in', $ids );
});

источник: https://github.com/elementor/elementor/issues/4916

Сообщите мне, если это сработает

person Math    schedule 10.02.2021