【问题标题】:How should you edit a global variable within a wordpress page template?您应该如何在 wordpress 页面模板中编辑全局变量?
【发布时间】:2019-08-28 20:14:04
【问题描述】:

我有一个全局变量:

global $espanolGlobal;

在我的functions.php文件中使用'init'钩子声明。

我正在尝试使用全局作为访问者上一页的持久记录。或者更确切地说,它们所在的最后一页的 slug 是否以“-es”结尾

所以在每个页面上我都运行如下内容:

global $espanolGlobal;
if (page_url_includes_substring()){
  $espanolGlobal = true;
} 
else{
  $espanolGlobal = false;
}

我希望 $espanolGlobal 然后在加载的下一页上保留这个值。这样我就可以做类似的事情

if($espanolGlobal == true){
//the last page was in Spanish, do x
}
else{
//the last page was in English, do y
}

然而,$espanolGlobal 的值似乎不会持续到下一页。

简而言之,有没有办法将全局变量传递给本地可以在站点范围内访问的新值?

【问题讨论】:

    标签: php wordpress scope global-variables


    【解决方案1】:

    全局变量是全局变量,但不是持久的,即它们不会从一次 WordPress 调用到下一次调用保留其值。在您的情况下,我认为您需要每个用户的持久性,以便 HTTP cookie 可以工作,因为它们在浏览器会话中是持久的。如果你想要一个 PHP 解决方案,你需要在 MySQL 数据库中存储一些东西,因为只有数据库中的数据会从一次 WordPress 调用持续到下一次调用。实际上,在文件系统中存储一些东西也是持久的,但在 WordPress 中,持久数据通常存储在数据库中。

    【讨论】:

    • 谢谢,我想可能是这样。但我在网上找不到明确说明的资源。
    • 您考虑过 HTTP 变量“Referer”吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2021-05-28
    • 1970-01-01
    • 2012-07-25
    • 2018-04-13
    相关资源
    最近更新 更多