Вопрос по 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" поехали.
В цыкле прогоним записи и те которые подходят будем выводить
<?php $needle = '18.10.2019' // Фраза которую ищем if ( $post->have_posts() ){ while( $post->have_posts() ){ $post->the_post(); // Пропускаем шаг цыкла если фразы в строке нету. if ( strripos($post->post->post_content, $needle) === false ) continue; get_template_part( 'content', get_post_format() ); } } // Возвращаем оригинальные данные поста. Сбрасываем $post. wp_reset_postdata();Код не тестировал, но вроде должно работать. Будут проблемы сообщите.
К сожалению не работает. Но спасибо что ответили
Что именно не работает? Подозреваю что проблема может быть в том что у первых 4 записей нету искомого значения. Можно таким же способом в цыкле в массив записать id записей у которых есть искомая строка. Только в запросе надо пост пер пейдж -1. Прогоните все записи и получите массив с айдишниками записей у которых есть. Потом делаете еще запрос только уже получаете записи по их ид из массива. В цыкле гоните и выводите.
Распечатайте запрос и посмотрите какие данные там есть. Возможно не надо указывать тип записи. После запроса
Только в pre оберните, редактор сайта не даёт этого сделать
Смотрите WP_OBJECT post там должны быть данные.
Это тоже не выход, либо использовать like/rlike и после кэшировать результат, либо добавить полнотекстовый индекс.
не очень производительный вариант но можно использовать параметр поиска
примерно так - https://wp-kama.ru/function/query_posts#search
Спасибо большое! То,что нужно! работает!))