Search URL parameters query

时间:2012-10-15 作者:zilj

Possible Duplicate:
Custom search form with empty parameters

希望这是一个快速的过程,但我遇到了麻烦。

我有多个搜索词,关键字,类别,国家和日期。我将其设置为用户不必搜索所有这些过滤器。我可以省略类别和/或日期,它将显示更松散的结果。

但如果我离开国家,它不会显示任何结果,对任何其他参数执行相同的操作仍会显示结果。问题只在于国家。

/?s=a&cat=41&country=&monthnum=&year= 不产生结果,但

/?s=a&cat=41&monthnum=&year=

为什么会这样?这些肯定是同一件事吗?

这是我的wp\\u查询,只是拉帖子,我以前有办法解决这个问题,但现在如果我删除它的话。搜索的效果没有什么不同。

$args = array(\'post_type\' => \'post\')
// This foreach doesn\'t actually need to be here ?
foreach(array(\'s\', \'cat\', \'country\', \'monthnum\', \'year\') as $key) {
    if(isset($_GET[$key]) && trim($_GET[$key]) !== \'\') {
        $args[$key] = $_GET[$key];
    }
}

1 个回复
SO网友:Adam

您的查询变量country 未定义,它不是标准的一部分query_vars 由WordPress设置,其中monthnumyear 这就是为什么它们有效而前者无效。

因此,您需要将查询变量添加到混合中,请尝试以下操作:;

function new_query_var() {

    global $wp;
    $wp->add_query_var(\'country\');

}

add_filter(\'init\', \'new_query_var\');
此外,您的foreach 正在检查此查询变量是否存在,因此未设置它(例如。isset) 然后它就无法通过条件检查。

结束