Вопрос по WP_Query
У меня выводятся записи из определенной категории таким запросом:
global $post; $args = array( 'posts_per_page' => 4, 'offset'=> 1, 'category' => 33 ); $myposts = get_posts( $args ); foreach( $myposts as $post ){ setup_postdata($post); get_template_part( 'content', get_post_format() ); } wp_reset_postdata();
(здесь обрезает код)
Мне нужно добавить фильтр, чтобы выводились только те записи, в которых в тексте есть определенное слово или дата, например "18.10.2019"
То есть чтобы из категории 33 вывелись записи в который в тексте встречается - 18.10.2019
Это возможно сделать?
Как по мне достаточно бредовая идея. Лучше добавить мета поле и сравнивать его в "where" Смотрите WP_Query
Но все же допустим что такую задачу реализовать крайнее важно. И так, то что мы ищем лежит в колонке "post_content" поехали.
В цыкле прогоним записи и те которые подходят будем выводить
Код не тестировал, но вроде должно работать. Будут проблемы сообщите.
К сожалению не работает. Но спасибо что ответили
Что именно не работает? Подозреваю что проблема может быть в том что у первых 4 записей нету искомого значения. Можно таким же способом в цыкле в массив записать id записей у которых есть искомая строка. Только в запросе надо пост пер пейдж -1. Прогоните все записи и получите массив с айдишниками записей у которых есть. Потом делаете еще запрос только уже получаете записи по их ид из массива. В цыкле гоните и выводите.
Распечатайте запрос и посмотрите какие данные там есть. Возможно не надо указывать тип записи. После запроса
Только в pre оберните, редактор сайта не даёт этого сделать
Смотрите WP_OBJECT post там должны быть данные.
Это тоже не выход, либо использовать like/rlike и после кэшировать результат, либо добавить полнотекстовый индекс.
не очень производительный вариант но можно использовать параметр поиска
примерно так - https://wp-kama.ru/function/query_posts#search
Спасибо большое! То,что нужно! работает!))