我遇到了一个自定义搜索表单的问题,该表单无法按需要过滤结果。我需要根据所选日期和/或类别进行筛选。
模板中使用的代码:
<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参数更改为category,但Wordpress忽略了它。我的htaccess文件是按照Wordpress的建议设置的,我已经通过permalinks页面刷新了DNS,以防出现问题,但这并没有解决问题。
如何让它通过两个参数进行过滤?
编辑:这可能是因为它是一个自定义的帖子类型和自定义的分类法吗?我找不到要传递的正确参数名称,而不是“cat”