$ _GET没有返回值的Wordpress插件问题

时间:2019-05-03 18:58:00

标签: php wordpress query-parameters

我正在为wordpress编写插件,该插件的第一步是将cookie设置为url参数?r=的值(如果存在)。

public function init_query_params() {
        if(!isset($_GET['r'])) {
            return;
        }

        $cookie_name = 'waitlist_referrer_id';
        $cookie_value = $_GET['r'];
        setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
    }

问题是即使参数确实存在,$_GET也为空。该参数在$_SERVER['REQUEST_URI']中可见,但在$_SERVER['QUERY_STRING']中不可见。

此问题仅在此特定客户端的暂存/产品上仍然存在,它在我的本地环境和另一个客户端产品环境中有效。

目前,我只是从REQUEST_URI进行解析,但希望能帮助您找到真正的问题。

1 个答案:

答案 0 :(得分:0)

在插件或功能文件中添加以下代码。

function add_query_vars_cb($aVars) {
$aVars[] = "r";
return $aVars;
}
add_filter('query_vars', 'add_query_vars_cb');

然后在要获取查询字符串变量值的页面上,应打印该对象

$objj = get_queried_object();
print_r($objj);

我认为您将获得价值。 谢谢。