使会话与WordPress一起使用

时间:2018-03-24 21:23:56

标签: php wordpress

通常这有效:

第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";
?>

结果?仍然没有。

我尝试将相同的代码放在主题的索引和标题页的顶部,主题文件夹和主文件夹中,但没有任何效果。

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

1 个答案:

答案 0 :(得分: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()