WordPress поиск постов по месяцам и годам
У меня есть форма поиска со следующими полями:
- поисковый ввод
- выпадающий номер месяца с именем "monthnum"
- год выпадающий под названием "год"
- сортировать по выпадающему
Это мой wp_query
$args = array (
's' => (!empty($_REQUEST["search"])?$_REQUEST["search"]:''),
'post_type' => 'post',
'post_status' =>'publish',
'cat' => 5,
'posts_per_page' => 9,
'paged' => $paged,
'monthnum' =>(!empty($_GET["monthnum"])?$_GET["monthnum"]:''),
'year' => (!empty($_GET["year"])?$_GET["year"]:''),
'orderby' =>(!empty($_GET["orderby"])?$_GET["orderby"]:'date'),
'order' => (!empty($_GET["order"])?$_GET["order"]:'DSCE'),
);
когда я выбираю месяц и год, я получаю 404 Not Found, и конец URL выглядит следующим образом
?search=&monthnum=10&year=2016
когда я жестко кодирую месяц и год в wp_query, он работает и отображает правильный пост
так почему это не работает, когда я передаю месяц и год через URL?
и как я могу позволить пользователю искать пост по месяцам и годам?
2 ответа
Поле 'monthnum' принимает значения int, которые вы не можете передать ''. попробуйте этот код -
$args = array (
's' => (!empty($_REQUEST["search"])?$_REQUEST["search"]:''),
'post_type' => 'post',
'post_status' =>'publish',
'cat' => 5,
'posts_per_page' => 9,
'paged' => $paged,
(!empty($_GET["monthnum"])?'monthnum' =>$_GET["monthnum"].',':''
(!empty($_GET["year"]))?'year' => $_GET["year"].',':''
'orderby' =>(!empty($_GET["orderby"])?$_GET["orderby"]:'date'),
'order' =>(!empty($_GET["order"])?$_GET["order"]:'DSCE'),
);
О, у меня была такая же проблема, я думаю, для меня это решило месяц и год, зарезервированные термины для параметров. Если вы измените их на что-то другое, это должно решить эту проблему. Я знаю, что это старый пост, но, возможно, он поможет кому-то еще.