我试图让启动画面仅在有人第一次访问Wordpress网站时出现。我对PHP了解不多,但是设置和读取cookie似乎是一种简单的方法,所以我将其添加到标题中.php:
<?php if ( !isset($_COOKIE['accessed']) ) {
setcookie('accessed', 'yes', time() + (86400 * 30)); // 30 days
?>
<script>
// Some code
</script>
<?php
}
?>
脚本运行,但 cookie 从未设置过,因此它在每次访问时都会运行......
我在某处读到您无法设置并与 PHP 在同一页面上读取 cookie,但如果这是真的,那么我真的不知道我应该如何实现这一点。
任何提示将不胜感激!
您需要在发送标头之前发送cookie。
在Wordpress中,如果你只是把这些代码放在你的主题html中,它将无法工作。
你需要在你的函数.php文件中做这样的事情
function checkAccessed(){
if ( !isset($_COOKIE['accessed']) ) {
setcookie('accessed', 'yes', time() + 3600*24*30);
define("ACCESSED", false);
}else{
define("ACCESSED", true);
}
}
add_action("init", "checkAccessed");
然后在您的主题 html 中。
<?php if(!ACCESSED){ ?>
<script></script>
<?php } ?>
Cookie 可能是
路径 Cookie。所以基本上这个cookie只会发送到一个页面。
你有萤火虫吗?如果您确实尝试使用"Cookie"选项卡进行检查。然后,您可以使用"网络"选项卡仔细检查cookie是否确实是由用户的浏览器发送的。
试试这个,更改了时间的计算 - 不确定它是否有区别,但这就是我计算 30 天的方式:
<?php if ( !isset($_COOKIE['accessed']) ) {
setcookie('accessed', 'yes', time() + 3600*24*30); // 30 days
?>
<script>
// Some code
</script>
<?php
}
?>