我在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
是否有更好的方法可以通过不会触发这些错误的查询字符串传递两个单独的数组?
答案 0 :(得分:1)
解决方案是为所有过滤器使用单个多维数组。通过将上面的查询修改为......
/?s=example&filters[genres][]=term1&filters[genres][]=term2&filters[keywords][]=term3&filters[keywords][]=term4
...我能够单独检索搜索结果页面上的值并避免所有错误。
$_GET["filters"]["genres"]
$_GET["filters"]["keywords"]