首页 文章

使Sessions适用于WordPress

提问于
浏览
0

通常这有效:

第1页

<? session_start();

   $_SESSION['note']  = "hello";

 ?>

第2页

<? session_start();

   echo $_SESSION['note'];

?>

导航到第1页以启动会话并加载变量 . 导航到第2页,变量处于活动状态 . 简单 .

现在我来到WordPress .

WordPress在特定文件夹中有一个“主题”,具有自己的页眉和页脚 . 可以这么说'模板' .

要创建页面,请登录管理部分,单击“添加页面”,然后会出现一个空白屏幕 . 如果您没有输入任何内容,并且“发布”,您将看到的是页眉和页脚 .

这意味着,任何特定于页面的PHP编码都会输入到空白文本框中,该文本框在显示时会夹在默认的“主题”页眉和页脚之间 .

所以,在本节中我输入第1页(与上面相同):

<? session_start();

   $_SESSION['note']  = "hello";

?>

然后第2页(与上面相同):

<? session_start();

   echo $_SESSION['note'];

?>

结果?没有 .


所以这就是我的尝试:

安装一个名为WP sessions manager的wp插件 .

安装插件后,尝试上面的代码,这不起作用,我尝试了这个语法p1:

<? $wp_session = WP_Session::get_instance();

   $wp_session['note'] = "hello";

 ?>

而这个p2

<? $wp_session = WP_Session::get_instance();
   $wp_session['note'] = "hello";
?>

结果?依然没有 .

我尝试将相同的代码放在主题的索引和 Headers 页的顶部,在主题文件夹和主文件夹中,但没有任何作用 .

由于会话在独立的php页面上工作正常,与wordpress有关的事情是阻止会话,使其无法工作,我试图找出原因并修复它 .

1 回答

  • 2

    使用:

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    

    现在,你的主题应该做的第一件事是 session_start() . 把它放在header.php的顶部或index.php的顶部 . 在使用之后:

    die(var_dump($_SESSION));
    

    如果这不起作用,您可能会遇到主题问题 .

    检查你的主题,看看会话是否在某处被破坏 . 搜索 session_destroy() .

相关问题