Intereting Posts
br на бэкэнд не появляется на интерфейсе Переписать URL-адрес настраиваемого типа сообщений для заданий Режим веб-приложений оставляет пользователей застрявшими, когда следующие ссылки на изображения при использовании WPTouch с W3 Total Cache Использование правила перезаписи для доступа к представлению плагина на главной странице Использование jQuery DataTables и yadcf Создание структурированных документов (книг) в WordPress? Удалить все, опубликованные и обработанные сообщения в пользовательском типе сообщения Как я могу узнать, подписался ли комментатор на уведомление о комментариях / других комментариях к сообщению Добавление пользовательского класса в меню администратора Импорт 200+ проповедей Создать индивидуальный идентификатор одиночной страницы. Получить значение настраиваемого поля Добавление полей в «Добавить нового пользователя», но данные формы не сохранены в БД после того, как wp_insert_post нужно получить идентификатор сообщения Избранное изображение сообщения исчезло после перехода сайта на другой сервер

Форма пользовательского поиска WordPress, отображающая неожиданные результаты

У меня возникла проблема с пользовательской формой поиска, которая не фильтрует результаты по мере необходимости. Мне нужно его фильтровать на основе выбранной даты и / или категории (ов).

код, используемый в шаблоне:

<aside class="widget widget_filter"> <h4>FILTER SEARCH</h4> <form method="get" action="<?php bloginfo('url'); ?>"> <input type="hidden" name="post_type" value="news" /> <?php $args = array( 'order' => 'DESC', 'orderby' => 'date', 'post_type' => 'news', 'posts_per_page' => '-1' ); $counter = 0; $ref_month = ''; $monthly = new WP_Query($args); if( $monthly->have_posts() ) : ?> <p>Date</p> <select name="m"> <option value="">Please Select Date</option> <?php while( $monthly->have_posts() ) : $monthly->the_post(); if( get_the_date('mY') != $ref_month ) : ?> <option value="<?php the_date('Ym'); ?>"><?php echo get_the_date('F Y'); ?></option> <?php $ref_month = get_the_date('mY'); $counter = 0; endif; endwhile; ?> </select> <?php endif; ?> <?php wp_reset_postdata(); ?> <p>Filed In</p> <?php $terms = get_terms( 'news-category' ); foreach( $terms as $term ) : ?> <label><input type="checkbox" name="cat" value="<?php echo $term->term_taxonomy_id ?>" /><?php echo $term->name; ?></label> <?php endforeach; ?> <input type="image" src="<?php echo get_stylesheet_directory_uri(); ?>/images/btn-filter.png" /> </form> </aside> 

Если я выбираю дату только, она отлично работает и перенаправляет URL-адрес, похожий на website.dev/2013/09/?post_type=news&x=67&y=8

Если я выбираю дату и категорию, она перенаправляется на страницу 404 с URL-адресом, похожим на website.dev/?post_type=news&m=&cat=7&x=88&y=21

Я попытался изменить параметр cat для категории, и WordPress игнорирует его. Мой файл .htaccess настроен по мере того, как рекомендует WordPress, и я сбросил DNS через страницу постоянных ссылок, если это была проблема, но это не решило проблему.

Как я могу его фильтровать по обоим параметрам?

edit: Может ли быть связано с тем, что это настраиваемый тип сообщения и пользовательская таксономия? Я не мог найти то, что будет правильным именем параметра вместо «cat»,

Solutions Collecting From Web of "Форма пользовательского поиска WordPress, отображающая неожиданные результаты"

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

  • Список переменных запроса WordPress
  • Функция WordPress: get_query_var($var);
  • Список зарезервированных условий WordPress .

Зарезервированные условия

Избежать следующих зарезервированных терминов особенно важно, если вы передаете этот термин через массив $_GET или $_POST . Это может привести к тому, что WordPress ответит с ошибкой 404 без каких-либо других намеков или объяснений.

Нажмите ссылку для условий WordPress Reserved, чтобы просмотреть полный список условий.