Intereting Posts
Как добавить replyToUrl schema.org в комментарии WordPress? почему выводится текущий заголовок страницы? Как кэшировать json с кешем wp-super Пользовательские изображения таксономии с расширенными настраиваемыми полями Массовое удаление сообщений WordPress с помощью phpMyAdmin Показать всю таксономию, детей и внуков со ссылками Ошибка загрузки изображений В чем разница между действиями «wp_footer» и «get_footer»? Страницы с автоматическим созданием меню Как сбросить самодельный URL-адрес WordPress? Индивидуальная отдельная страница типа сообщения (одно-{CPT-name}) 404, когда пуля включает дефисы Переопределить конфигурацию базы данных для WordPress multiblog Удалить rel = 'dns-prefetch' href = '// maps.google.com' из wp-head Как ограничить количество сообщений на странице пользовательского типа сообщений? Почему я получаю сообщение об ошибке, когда добавляю параметр number в свой WP_User_Query?

Форма пользовательского поиска 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, чтобы просмотреть полный список условий.