在WordPress中向查询变量添加多个值

时间:2017-04-11 作者:Kiran Dash

我正在函数中使用以下代码。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\'); ?>
现在我可以传递一个URL,如:

http://myexamplesite.com/store/?brand=nike
并在结果中获得nike。

如何传递品牌的多重价值。所以我想为品牌设定三个价值,比如耐克、阿迪达斯和伍德兰。

我尝试了以下方法,但均无效:

  1. http://myexamplesite.com/store/?brand=nike&brand=adidas&brand=woodland它只返回最后一个品牌,在本例中为woodland。

  2. http://myexamplesite.com/store/?brand=nike+adidas+woodland这将返回所有三个带空格的值。我有点认为这不是正确的解决方案。因此,可能有一种正确的方法可以为查询变量传递多个值并在数组中检索它们,这样就可以运行循环。

2 个回复
最合适的回答,由SO网友:Faysal Mahamud 整理而成

我给你一些你想用的解决方案。

使用plushttp://myexamplesite.com/store/?brand=nike+adidas+woodland

//Don\'t decode URL
  <?php
    $brand = get_query_var(\'brand\');
    $brand = explode(\'+\',$brand);
    print_r($brand);
  ?>
使用,分隔符http://myexamplesite.com/store/?brand=nike,adidas,woodland

$brand = get_query_var(\'brand\');
$brand = explode(\',\',$brand);
print_r($brand);
序列化方式

<?php $array = array(\'nike\',\'adidas\',\'woodland\');?>
http://myexamplesite.com/store/?brand=<?php echo serialize($array)?>
to get url data
$array= unserialize($_GET[\'var\']);
or $array= unserialize(get_query_var(\'brand\'));
print_r($array);
json方式

<?php $array = array(\'nike\',\'adidas\',\'woodland\');
  $tags = base64_encode(json_encode($array));
?>
http://myexamplesite.com/store/?brand=<?php echo $tags;?>
<?php $json = json_decode(base64_decode($tags))?>
<?php print_r($json);?>
使用-方式

我建议使用mod\\u rewritehttp://myexamplesite.com/store/brand/nike-adidas-woodland 或者如果只想使用phphttp://myexamplesite.com/store/?brand=tags=nike-adidas-woodland. 使用“-”可以使其对搜索引擎友好。

<?php
    $brand = get_query_var(\'brand\');
    $brand = explode(\'-\',$brand);
    print_r($brand);
?>
在任何情况下,你都会得到相同的结果

    Array
    (
        [0] => nike
        [1] => adidas
        [2] => woodland
    )

SO网友:Nicolas RIVIERE

使用“;名称[]”;in-name属性:

<input type="checkbox" name="brand[]">

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post