【发布时间】:2020-05-26 06:05:25
【问题描述】:
我尝试在 WordPress 网站主题 function.php 文件中使用 Session 变量。它适用于主页,但不适用于其他页面。
以下是我在 WordPress function.php 文件上编写的代码。 home.php 哪里有自定义登录,是通过访问代码获取网站访问权限。
add_action('init', 'start_session', 1);
function start_session() {
if(!session_id()) {
session_start();
}
}
add_action('wp_logout','end_session');
add_action('wp_login','end_session');
add_action('end_session_action','end_session');
function end_session() {
session_destroy();
}
$rand = $_GET['rand'];
$id = $_GET['ID'];
$_SESSION['invitation'] = $rand;
$_SESSION['code'] = $id;
if (!isset($_SESSION['invitation']) && !isset($_SESSION['id']) ) {
header("Location: https://www.website.com/home.php");
}
【问题讨论】:
-
你为什么要在一个动作中开始会话?只需在文件顶部启动它。无需等待。应该尽早开始。
-
我认为带有 PHP 7.2 的 WordPress 存在一些问题,如果我立即使用代码开始会话,它就无法正常工作。 session_start(); $rand = $_GET['rand']; $id = $_GET['ID']; $_SESSION['邀请'] = $rand; $_SESSION['code'] = $id; if (!isset($_SESSION['invitation']) && !isset($_SESSION['id']) ) { header("位置:website.com/home.php"); }