我想向Wordpress网站的第一次访问者显示一个弹出窗口。我尝试使用$_SESSION
. 在页脚中有类似的内容。php:
<?php
if(!isset($_SESSION[\'pxpop\']))
$_SESSION[\'pxpop\']= true;
if(($_SESSION[\'pxpop\']) && (!is_user_logged_in()))
{
?>
<div class="open_initpop">
<?php if(is_active_sidebar(\'msg-pop\')): ?>
<?php dynamic_sidebar(\'msg-pop\'); ?>
<?php endif; ?>
</div>
<?php
$_SESSION[\'pxpop\']= false;
}
?>
使用session_start();
在init
函数的挂钩。php。但这是行不通的。$_SESSION[\'pxpop\']
残余true
在每个页面上加载。因此,弹出窗口将在每个页面上打开。
带一点r&;我发现由于一些“无状态”问题,wordpress不使用会话。网站健康部分还指出:
"E;由session\\u start()函数调用创建的PHP会话可能会干扰REST API和环回请求。在发出任何HTTP请求之前,应通过session\\u write\\u close()关闭活动会话"E;
然后我尝试实施$_COOKIE
太(在init
吊钩)组件:
<?php
function pop_event()
{
if(!isset($_COOKIE[\'pxpop\']))
{
setcookie(\'pxpop\', true, 0);
//$_COOKIE[\'pxpop\']= true;
}
if(($_COOKIE[\'pxpop\']) && (!is_user_logged_in()))
{
?>
<div class="open_initpop">
<?php if(is_active_sidebar(\'msg-pop\')): ?>
<?php dynamic_sidebar(\'msg-pop\'); ?>
<?php endif; ?>
</div>
<?php
//unset($_COOKIE[\'pxpop\']);
//$_COOKIE[\'pxpop\']= false;
setcookie(\'pxpop\', false, 0);
}
}
?>
但这不太管用。。。我的方法有什么问题?在没有实际使用的情况下,在Wordpress(如PHP会话)中传递值的正确方法是什么?或者使用$\\u会话是唯一的选择?