php одинаковые параметры разные значения - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть плагин 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"] = "";

как мне отредактировать это, чтобы оно показывало мне 2 одинаковых параметра с разными значениями?

РЕДАКТИРОВАТЬ:

Я добавил следующее, и это работает как шарм!

    $params["condition"][] = "Filter1";
    $params["condition"][] = "Filter2";

Спасибо ребята! @ CBroe & @ Vincent Decaux

/ home /? Условие% 5B0% 5D = Filter1 & условие% 5B1% 5D = Filter2 & s = оказывается отлично работающим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...