WordPress поиск постов по месяцам и годам - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть форма поиска со следующими полями:

  • ввод для поиска
  • выпадающий номер месяца с именем "monthnum"
  • выпадающий год с именем "year""
  • сортировка по выпадающему списку

Это мой 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?
и как разрешить пользователю искать пост по месяцам и годам?

1 Ответ

0 голосов
/ 25 декабря 2018

поле '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"]:false),
          (!empty($_GET["year"]))?'year' => $_GET["year"]:false),
          'orderby' =>!empty($_GET["orderby"])?$_GET["orderby"]:'date',
        );
...