通过查询字符串将多个数组传递给Wordpress搜索

时间:2015-03-19 17:39:29

标签: php arrays wordpress search query-string

我在Wordpress搜索表单中添加了一些自定义过滤功能,允许用户按不同的分类法进行过滤。传递单个数组时一切正常,如:

/?s=example&genres[]=term1&genres[]=term2

但是,当第二个数组添加了不同的分类时,如...

/?s=example&genres[]=term1&genres[]=term2&keywords[]=term3&keywords[]=term4

...搜索结果页面上有一些PHP错误

Warning: strpos() expects parameter 1 to be string, array given in /nas/wp/www/staging/pbsi/wp-includes/query.php on line 1861

Warning: preg_split() expects parameter 2 to be string, array given in /nas/wp/www/staging/pbsi/wp-includes/query.php on line 1862

Warning: Invalid argument supplied for foreach() in /nas/wp/www/staging/pbsi/wp-includes/query.php on line 1863

Warning: strpos() expects parameter 1 to be string, array given in /nas/wp/www/staging/pbsi/wp-includes/query.php on line 1861

Warning: preg_split() expects parameter 2 to be string, array given in /nas/wp/www/staging/pbsi/wp-includes/query.php on line 1862

Warning: Invalid argument supplied for foreach() in /nas/wp/www/staging/pbsi/wp-includes/query.php on line 1863

是否有更好的方法可以通过不会触发这些错误的查询字符串传递两个单独的数组?

1 个答案:

答案 0 :(得分:1)

解决方案是为所有过滤器使用单个多维数组。通过将上面的查询修改为......

/?s=example&filters[genres][]=term1&filters[genres][]=term2&filters[keywords][]=term3&filters[keywords][]=term4

...我能够单独检索搜索结果页面上的值并避免所有错误。

$_GET["filters"]["genres"]
$_GET["filters"]["keywords"]