【问题标题】:Log out of Wordpress password protected pages when browser closes浏览器关闭时退出 Wordpress 密码保护页面
【发布时间】:2018-08-15 00:52:05
【问题描述】:

我希望 Wordpress 中受密码保护的页面的 cookie 在浏览器窗口关闭时过期。我在我的 functions.php 文件中尝试了以下内容,但没有成功:

function custom_password_cookie_expiry( $expires ) {
    return 0;  // Make it a session cookie
}
add_filter( 'post_password_expires', 'custom_password_cookie_expiry' );

任何帮助将不胜感激

【问题讨论】:

标签: php wordpress cookies session-cookies


【解决方案1】:

一种方法是从前端使用 javascript。在 onunload 事件上根据您的用例删除所有或特定 cookie。请注意,onunload 事件也会在用户导航到其他链接或单击后退按钮时触发。

【讨论】:

  • 可以改为在php.ini中设置吗?像 setcookie = 0 这样的东西?
  • 您无法更改 php.ini 中的 cookie 到期时间。把这个 javascript 放到你的页面上: jQuery( window ).unload(function() {for (var it in jQuery.cookie()) jQuery.removeCookie(it);});这应该删除所有没有任何明确路径或未标记为仅 http 的 cookie。
【解决方案2】:

这个问题已经在这里解决了。请看链接:

function wpse_191369_post_password_expires() {
    return time() + 10; // Expire in 10 seconds
}

add_filter( 'post_password_expires', 'wpse_191369_post_password_expires' );

更多详情:

https://wordpress.stackexchange.com/questions/191369/how-to-make-page-post-password-protected-so-you-must-reenter-everytime-you-visit

【讨论】:

  • 为什么是 10 秒而不是 0 秒?
  • 有时,它不适用于“return 0;”然后我们设置了很小的时间并且它起作用了。这就是我设置 10 秒的原因。
  • 好的,你看到链接了吗?
  • 好的,让我在我的机器上再检查一遍。
  • 在不知道为什么会起作用的情况下将其设置为 10 秒并不是一个很好的解决方案。找出它为什么在 0 秒内不工作的根本原因。
猜你喜欢
  • 2016-02-11
  • 1970-01-01
  • 2021-06-10
  • 2011-06-21
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
相关资源
最近更新 更多