通常这有效:
第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有关的事情是阻止会话,使其无法工作,我试图找出原因并修复它。
答案 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()
。