Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php相同的参数不同的值_Php_Wordpress_Parameters - Fatal编程技术网

php相同的参数不同的值

php相同的参数不同的值,php,wordpress,parameters,Php,Wordpress,Parameters,我有一个Wordpress插件,当搜索多种类型的汽车时,会在url中广告相同参数的多个值 /home/?condition=filter1&condition=filter2&s= 现在,我为不同的汽车创建了多个用户角色,并希望向站点添加一个过滤器。 此代码使用1个值 function wprdcv_param_redirect() { $user = wp_get_current_user(); $url_parts = parse_url("http:/

我有一个Wordpress插件,当搜索多种类型的汽车时,会在url中广告相同参数的多个值

/home/?condition=filter1&condition=filter2&s=
现在,我为不同的汽车创建了多个用户角色,并希望向站点添加一个过滤器。 此代码使用1个值

function wprdcv_param_redirect() {

    $user = wp_get_current_user();

    $url_parts = parse_url("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
    parse_str($url_parts['query'], $params);


    if( ! empty( $user ) && count( array_intersect( [ "userrole1" ], (array) $user->roles ) ) ) {
        //Prevent infinite loop
        if ($_GET["condition"] == "filter1") return;
        $params["condition"] = "filter1";
        $params["s"] = "";
    }
    else {
        //Prevent infinite loop
        if ($_GET["condition"] == "") return;
        $params["condition"] = "";
        $params["s"] = "";
    }

    foreach (array_keys($_GET) as $n) {
        $params[$n] = $_GET[$n];
    }

    // Note that this will url_encode all values
    $url_parts['query'] = http_build_query($params);
    wp_redirect(http_build_url($url_parts));
    exit;
}
add_action('template_redirect', 'wprdcv_param_redirect'); 
当我添加以下值时,它会自动覆盖该值,并仅显示最后一个值:

if ($_GET["condition"] == "filter1") return;
        $params["condition"] = "filter1";
        $params["condition"] = "filter2";
        $params["s"] = "";
我如何编辑它,使其显示具有不同值的两个相同参数

编辑:

我添加了以下内容,它就像一个魅力

    $params["condition"][] = "Filter1";
    $params["condition"][] = "Filter2";
Thx伙计们


/home/?条件%5B0%5D=Filter1和条件%5B1%5D=Filter2&s=证明工作正常

您必须使用数组定义多个参数,例如:
/home/?条件[]=Filter1和条件[]=Filter2&s=
,当然也可以,您的参数将始终被覆盖为什么不直接执行POST请求并提交带有数组的JSON结构?
$params[“条件”][]=“新过滤器值”