Intereting Posts
Использование API Rewrite для создания URL-адреса RESTful $ Wpdb-> prepare не создает подготовленный оператор, который я могу выполнить несколько раз? WooCommerce Изображения загружаются на сервер, но не прикрепляются wp-pagenavi получает 404 страницы не найден выделить «избранные» комментарии администратора Как я могу отобразить пользовательскую страницу в области администрирования WordPress? (получение сообщения «не разрешено для доступа к этой странице» Канонические URL ресурсов через многоуровневую сеть 2012? Пользовательское поле IF / ELSE PHP Невозможность добавить термин meta WP_User_Query для исключения пользователей без сообщений Как перенести сообщения из старого пользовательского старого блога на новый веб-сайт WordPress? Нужен ли мне «WordPress хостинг» для размещения WordPress? WP Admin Bar показан внизу Качество изображения на основе размера изображения Mysqldump добавить таблицу drop?

wp_query с параметрами

У меня есть страница пользовательского поиска, через которую я выбираю:

One or ALL categories One or ALL tags One or ALL authors A search string or no search string 

На странице результатов wp_query работает, когда я выбрал значения. Но как мне поручить установить какой-то параметр как ВСЕ? Как настроить «поиск ВСЕХ категорий», например?

Может быть, мне нужно разбить мои аргументы и добавить к ним только тогда, когда у меня есть ценности? Но как мне это сделать?

Благодарю.

РЕДАКТИРОВАТЬ

Я изменил wp-запрос и теперь выглядит следующим образом. Все работает отлично, но у меня нет пейджинга!

 $args = array( 'order' => 'DESC', 'orderby' => 'date', 'posts_per_page'=> 10 ); if ( '0' != $category ) { $args['cat'] = $category; } if ( '0' != $tag ) { $args['tag'] = $tag; } if ( '0' != $author ) { $args['author'] = $author; } if ( '' != $search ) { $args['s'] = $search; } $the_query = new WP_Query( $args ); while ($the_query-> have_posts()) : $the_query->the_post(); .... endwhile; wp_pagenavi( array( 'query' => $the_query ) ); 

Solutions Collecting From Web of "wp_query с параметрами"

Предполагая, что у вас есть переменные для хранения ваших пользовательских значений для каждого:

  • $category
  • $tag
  • $author
  • $search

Затем просто создайте массив аргументов и добавьте к нему ключи условно:

 $custom_query_args = array( // Set any default args here // NOTE: This is where you'd add // things like pagination (posts_per_page), // order/sort parameters, and the like 'posts_per_page' => 10, 'orderby' => 'date', 'order' => 'DESC' ); // If user defines $category, add it if ( '' != $category ) { $custom_query_args['cat'] = $category; } // If user defines $tag, add it if ( '' != $tag ) { $custom_query_args['tag'] = $tag; } // If user defines $author, add it if ( '' != $author ) { $custom_query_args['author'] = $author; } // If user defines $search, add it if ( '' != $search ) { $custom_query_args['s'] = $search; } // Run the query $custom_query = new WP_Query( $custom_query_args ); 

Примечание. Как вы определяете $category , $tag , $author и $search выходит за рамки этого ответа.

редактировать

Если вы хотите включить параметр мета-запроса (то есть настраиваемое поле) , вы также можете это сделать:

Предполагая (определяемый пользователем) $post_meta_key и (статический) $post_meta_key :

 // If user defines $post_meta_value, add it if ( '' != $post_meta_value ) { $custom_query_args['meta_query'] = array( array( 'key' => $post_meta_key, 'value' => $post_meta_value, 'compare' => '=', ) ); }