嗨,我是 wordpress 的新手。
我对此进行了很多研究,但没有成功。我想在注销前将 cookie 值设置为 NULL,并在管理员登录后设置自定义值。
所以我把下面的代码放在 wp-includes/puggable.php => 函数 wp_set_auth_cookie 中setcookie("cookieName", '', time() + (1 * 60) , true);
echo "<script>console.log('Cookie must set null')</script>";
但是即使在登录注销后也没有成功 cookie 值保持不变。
最佳答案
永远不要 编辑 Wordpress 核心文件!如果有一天你更新了 Wordpress(为了解决安全问题,你会想要更新),你所有的修改都将丢失。
您需要做的是使用 wp_login
和 wp_logout
操作。您使用 add_action
附加这两个操作函数,因此它们将在这些事件上触发。这些函数和 add_action
调用发生在主题的 functions.php 文件中。
所以在functions.php中,添加这个以在登录时设置cookie(仅限管理员):
add_action('wp_login', 'add_custom_cookie_admin');
function add_custom_cookie_admin() {
if(is_admin()) {
setcookie('your_cookie_name', 'cookie value', time() + 86400, '/'); // expire in a day
}
}
请注意,正如 diziaq 在他的回答中指出的那样,您使用了错误的
setcookie
函数。并在注销时删除 cookie:
add_action('wp_logout', 'remove_custom_cookie_admin');
function remove_custom_cookie_admin() {
setcookie('your_cookie_name', '', time() - 3600);
}
与 diziaq 指出的一样,您需要删除 cookie - 您不能将其设置为
NULL
。
关于wordpress - 在注销前和管理员登录后设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256109/