что должно быть в массиве $args, чтобы отфильтровать посты например по значению поля myfield == 1?
meta_key, meta_value
см мануалы:
Старый оригинал https://codex.wordpress.org/get_posts (ИМХО более понятный чем) новый: https://developer.wordpress.org/reference/functions/get_posts/
И по-русски https://wp-kama.ru/function/get_posts
ок, это понятно, спасибо за ответ.
А как быть, если фильтровать надо по произвольному полю типа Обьект записи? Там в meta_value содержится обьект поста, соответственно, его у меня нет, ест только его ID
по произвольному полю типа Обьект записи?
Я таких «типов» ПП не знаю. Как, впрочем, и любых других.
в meta_value содержится обьект поста, соответственно, его у меня нет, ест только его ID
Тогда надо сперва получать ID. Или писать не ID, а то, что нужно для фильтрации.
Я таких «типов» ПП не знаю. Как, впрочем, и любых других.
Объясню подробнее: Я использую плагин Advanced Custom Fields. Создал с его помощью произвольное поле, и выбрал в настройках поля тип «Объект записи».
Соответственно, в этом поле хранится WP_Post Object, то есть обьект связанной записи.
Как мне отфильтровать все записи, в значении произвольного поля которых хранится WP_Post Object, у которого мне известно свойство ID?
Подоплека:
Имеются типы записей tribe_events (мероприятия) и post(использую для новостей)
одному мероприятию может соответствовать несколько новостей, и каждой новости напротив, соответствует только одно мероприятие.
Я создал произвольное поле у post(новости) в котором хранится обьект связанной записи tribe_events(одного мероприятия)
На странице мероприятия планирую вывести все записи типа post(новости) привязанные к данному мерорприятию.
пришлось извратиться вот так. Неужели нет другого способа?
$args = array(
'meta_key' => 'event_binding',
);
$posts = get_posts( $args );
foreach($posts as $post){
if($post->ID == $event_id)
$event_binding = get_field('event_binding', $post->ID);
}
$args2 = array(
'meta_key' => 'event_binding',
'meta_value' => $event_binding
);
$binding_posts = get_posts( $args2 );