Поддержка Проблемы и решения Как отфильтровать записи по значению произвольного поля?

  • Добрый день! Передо мной стоит задача фильтрации записей по значению произвольного поля, как это реализовать, можете пример подсказать?
    $myposts = get_posts( $args );
    что должно быть в массиве $args, чтобы отфильтровать посты например по значению поля myfield == 1?

    • Тема изменена 6 лет назад пользователем h4dr0g3nt2ar.
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • что должно быть в массиве $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

    Автор h4dr0g3nt2ar

    (@h4dr0g3nt2ar)

    ок, это понятно, спасибо за ответ.
    А как быть, если фильтровать надо по произвольному полю типа Обьект записи? Там в meta_value содержится обьект поста, соответственно, его у меня нет, ест только его ID

    • Ответ изменён 6 лет назад пользователем h4dr0g3nt2ar.

    по произвольному полю типа Обьект записи?

    Я таких «типов» ПП не знаю. Как, впрочем, и любых других.

    в meta_value содержится обьект поста, соответственно, его у меня нет, ест только его ID

    Тогда надо сперва получать ID. Или писать не ID, а то, что нужно для фильтрации.

    Автор h4dr0g3nt2ar

    (@h4dr0g3nt2ar)

    Я таких «типов» ПП не знаю. Как, впрочем, и любых других.

    Объясню подробнее: Я использую плагин Advanced Custom Fields. Создал с его помощью произвольное поле, и выбрал в настройках поля тип «Объект записи».
    Соответственно, в этом поле хранится WP_Post Object, то есть обьект связанной записи.
    Как мне отфильтровать все записи, в значении произвольного поля которых хранится WP_Post Object, у которого мне известно свойство ID?

    Автор h4dr0g3nt2ar

    (@h4dr0g3nt2ar)

    Подоплека:
    Имеются типы записей tribe_events (мероприятия) и post(использую для новостей)
    одному мероприятию может соответствовать несколько новостей, и каждой новости напротив, соответствует только одно мероприятие.
    Я создал произвольное поле у post(новости) в котором хранится обьект связанной записи tribe_events(одного мероприятия)
    На странице мероприятия планирую вывести все записи типа post(новости) привязанные к данному мерорприятию.

    • Ответ изменён 6 лет назад пользователем h4dr0g3nt2ar.
    Автор h4dr0g3nt2ar

    (@h4dr0g3nt2ar)

    пришлось извратиться вот так. Неужели нет другого способа?

    			$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 );
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Как отфильтровать записи по значению произвольного поля?» закрыта для новых ответов.