搜索格式与分类查询不匹配

时间:2015-06-10 作者:MrFox

我在这个项目中继承了一些代码。此搜索有效。我可以单击每个单独的分类法并查看页面上显示的结果。然而,我希望这可以扩展搜索范围,而不仅仅是执行新的搜索,即我试图在某个地区、事件类别和年龄组中查找事件。?region=102&category=8&agegroup=74

$taxonomy_query = array();
if( isset( $_GET[\'region\'] ) && $_GET[\'region\'] ){
$taxonomy_region_query = array( \'taxonomy\' => \'region\', \'field\' => \'id\', \'terms\' => $_GET[\'region\'] );
$taxonomy_query[] = $taxonomy_region_query;
}
if( isset( $_GET[\'category\'] ) && $_GET[\'category\'] ){
$taxonomy_cat_query = array( \'taxonomy\' => \'event_category\', \'field\' => \'id\', \'terms\' => $_GET[\'category\'] );
$taxonomy_query[] = $taxonomy_cat_query;
}
if( isset( $_GET[\'age_groups\'] ) && $_GET[\'age_groups\'] ){
$taxonomy_age_query = array( \'taxonomy\' => \'age_groups\', \'field\' => \'id\', \'terms\' => $_GET[\'age_groups\']);
$taxonomy_query[] = $taxonomy_age_query;
}
if( $taxonomy_region_query & $taxonomy_cat_query & $taxonomy_age_query ){
$taxonomy_query[\'relation\'] = \'AND\';
}
$args = array(
        \'post_type\'      => array("event"),
        \'post_status\'    => "publish",
        \'meta_key\'       => "sc_event_date",
        \'orderby\'        => "sc_event_date",
        \'meta_query\'     => $search_query,
        \'tax_query\'      => $taxonomy_query,
        \'order\'              => "ASC",
        \'posts_per_page\' => 5,
        );
$event_query = new WP_Query($args);`
编辑:

对,我改变了搜索的方式,现在我使用单选按钮。

<?php foreach( $regions as $region ) : ?>
<label><input type="radio" name="?region=<?php echo $region->slug;?>" /><span><?php echo $region->name;?></span></input></label><br />
<?php endforeach;?>
我有一个地区,类别和年龄组。我有一个新问题。我已成功启用搜索以添加每个新术语,但我的搜索查询现在如下所示:

?%3Fregion%3Dborders=on&%3Fcategory%3Dadventure-races=on&%3Fcategory%3Dadult=on
分类查询无法识别此格式,只有当结果以此格式显示在url中时,它才会显示结果:

?region=borders&category=adventure-races&agegroup=adult
如何使我的搜索输出与taxomony查询搜索相同的格式?据我所知,导致问题的是%3F、%3F和=on。非常沮丧。我快到了。

1 个回复
最合适的回答,由SO网友:MrFox 整理而成

好的,问题是我的单选按钮。

<?php foreach( $regions as $region ) : ?>
<label><input type="radio" name="region" value="<?php echo $region->slug;?>" /><span><?php echo $region->name;?></span></input></label><br />
 <?php endforeach;?>
通过给单选按钮一个名称和值,而不在名称或值中使用任何符号,我解决了这个问题。其实就这么简单。

结束

相关推荐

How to customize user search

我正在开发一个自定义用户搜索,我正在使用找到的这个插件here:<?php function sul_user_listing($atts, $content = null) { global $post; extract(shortcode_atts(array( \"role\" => \'technician\', \"number\" => \'10\' )