У нас есть страница поиска, которая использует стандартную глобальную $ wp_query и принимает такие параметры, как s и category_name из $ _GET.Как установить wp_query на странице поиска в wordpress
Я хочу добавить некоторые параметры в wp_query на странице поиска. Но сложнее параметров, переданных в $ _GET.
Вот почему я попытался создать новый WP_Query как
$args = array(
'date_query' => array(
array(
'hour' => 9,
'compare' => '>=',
),
array(
'hour' => 17,
'compare' => '<=',
),
array(
'dayofweek' => array(2, 6),
'compare' => 'BETWEEN',
),
),
'posts_per_page' => -1,
);
$new_query = new WP_Query($args);
И принимать результаты в
<?php while ($new_query->have_posts()) : $new_query->the_post(); ?>
Но это не работает. Даже если сбросить глобальные $ WP_Query с
wp_reset_query()
Я могу переписать глобальные $ WP_Query происходит внутри и сравните дату каждого поста с моей датой и снята с должности, если не совпадает. Но я уверен, что это не правильный способ делать то, что я хочу.
Что я делаю неправильно?
смотреть на [это] (https://www.smashingmagazine.com/2016/03/advanced-wordpress-search-with-wp_query/) –
@RohitKishore спасибо так много. Правильный способ - использовать фильтр pre_get_posts и установить любую функцию набора запросов query_var. В моем случае, например, я написал $ query-> set ('date_query', array ('0' => array ( 'after' => $ after, 'before' => $ before, ' включительно '=> true ) )); –