Intereting Posts
Wp Super Cache останавливает обновление Post Meta get_post_thumbnail_id / set_post_thumbnail не работает Разбиение страниц на несколько запросов для разных авторов на author.php Запросить пользователей, которые имеют одинаковые динамически сгенерированные роли в качестве текущего пользователя Пользовательский шаблон сообщения для пользовательского типа сообщения Кнопка входа в систему CSS Выбор пользователя Удаление страниц Как я могу использовать кеширование фрагментов, чтобы исключить кеширование определенных плагинов? Не удается получить доступ к администратору: «Не допустимо» Отображение содержимого моих плагинов на основе страниц post_id Предоставление определенных категорий CPT не является общедоступным Добавлен пользовательский тип сообщения и параметр просмотра не работает Суб-суб-блоги – создание и импорт содержимого в пользовательский подтип Как импортировать файлы в отдельные записи настраиваемого типа Более 1 года запроса по дате

Удаление сообщений из возвращенного wp_query. Нельзя использовать объект типа WP_Query в качестве массива

Моя конечная цель – выполнить 3 настраиваемых фильтра полей в наборах фильтров в WP_Query. Трудность возникает, поскольку мне нужно использовать оба отношения AND / OR между тремя фильтрами:

  • field1 = A AND
  • field2 = null ИЛИ field2 = B

Способ, которым я пытаюсь решить это, – это выполнить первый фильтр поля в исходном WP_Query, поскольку это будет делать основную часть фильтра. Затем я хочу собрать список идентификаторов сообщений, соответствующих запросу (field2 = null OR field2 = B) (используя второй WP_Query), а затем выполнить проверку исходного WP_Query в списке post_id и удалить любые совпадения.

код, который мне нужно сделать до сих пор:

foreach($query['posts'] as $thepost) { if(in_array($thepost['ID'], $new_query_results['posts'])){ unset($thepost); } } 

Поскольку $ query является основным WP_Query и $ new_query_results, являющимся WP_Query, который просто возвращает массив идентификаторов сообщений

Выполнение этого кода дает мне ошибку:

 Fatal error: Cannot use object of type WP_Query as array in functions.php on line 190 Line 190: foreach($query['posts'] as $thepost) { 

Во-первых, есть ли лучший способ достичь моей цели? Если нет, кто-нибудь может решить, как заставить этот фрагмент кода работать?

Solutions Collecting From Web of "Удаление сообщений из возвращенного wp_query. Нельзя использовать объект типа WP_Query в качестве массива"

WP_Query – это объект, а не массив. Необходимо использовать $ query-> posts

Для всех, кого это интересует, я нашел лучший способ атаковать эту проблему. Выполнение второго запроса с помощью операторов OR и вывод в массив идентификаторов сообщений позволило мне отфильтровать исходный запрос, основанный на этом списке.