我在functions.php中使用以下代码将自定义查询变量添加到我的WordPress项目中。
<?php
function add_custom_query_var( $vars ){
$vars[] = "brand";
return $vars;
}
add_filter( 'query_vars', 'add_custom_query_var' );
?>
然后在我正在使用的内容页面上:
<?php echo $currentbrand = get_query_var('brand'); ?>
所以现在我可以传递一个像:
这样的网址http://myexamplesite.com/store/?brand=nike
并获得结果。
如何为品牌传递多个值。所以我想为品牌说,nike,adidas和林地提供3个价值。
我尝试了以下内容,但没有一个有效:
http://myexamplesite.com/store/?brand=nike&brand=adidas&brand=woodland 它只返回最后一个品牌,在这种情况下是林地。
http://myexamplesite.com/store/?brand=nike+adidas+woodland 这将返回所有三个空格。我认为这不是正确的解决方案。因此,可能有一种正确的方法可以为查询变量传递多个值,并在数组中检索它们,这样可以运行循环。
答案 0 :(得分:1)
您需要以这种方式传递查询参数;
brand1 =耐克&安培; brand2 =阿迪达斯&安培; brand3 =林地
所以,每个品牌的不同关键
在页面上,收到值
$params = $_GET;
$brands = array();
foreach($params as $k=>$v) {
if(substr($k,0,5)=="brand") {
$brands[] = $v;
}
}
<强>替代地强>
使用第二种方法 http://myexamplesite.com/store/?brand=nike+adidas+woodland
$brands = explode(" ", $_GET['brand']);
替代方法看起来更容易
答案 1 :(得分:1)
通常,您将传递类似?brand[]=unresponsibleCompany1&brand[]=otherBrandThatDoesNotCareMuch&brand[]=bunchOfCriminals
的参数。
在您的WordPress PHP代码中,然后get_query_var( 'brand' )
将返回一个数组。
其他所有听起来像是相对便宜但昂贵的解决方法。