3

我正在为 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但很想帮助追踪真正的问题。

4

1 回答 1

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);

我想你会得到价值。谢谢你。

于 2019-05-04T05:18:06.557 回答