要求访问者在每次访问页面时输入密码

时间:2020-05-28 作者:Adam Nelson

这种流行病改变了我在公司中的角色,所以我现在正在做我们所有的WordPress开发工作,尽管我没有接受WordPress培训。如果你愿意的话,可以随意评论我的老板缺乏智慧!

无论如何,我要做的是创建一个受密码保护的页面。知道密码的访问者可以输入密码并查看内容。到目前为止,一切顺利。我发现了这一点,甚至可以自定义登录屏幕的外观,这样就不会像默认的那样难看了。

然而,客户端要求我配置页面,以便如果访问者离开页面,他们需要重新输入密码才能返回到内容。似乎有很多可能的解决方案,但我似乎无法使其中任何一个奏效。我不断发现的代码是以下代码的一些变体:

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

add_filter( \'post_password_expires\', \'wpse_191369_post_password_expires\' );
我已经将其插入到我的孩子主题的函数中。php,并在Chrome上以匿名模式进行测试。我可以登录一次并查看内容,但如果我尝试打开新的“匿名”选项卡或窗口,我仍然可以访问内容,而无需输入密码。

我确信解决方案显而易见,但我在这里是个新手,真的只是在黑暗中蹒跚而行!

提前感谢您的建议!

1 个回复
SO网友:Mort 1305

在后端(管理区域),您可以按每页设置密码保护。Go here 了解这一点。

下一个the filter 您所指的是正确的。只需在到期时返回right now.

add_filter(\'post_password_expires\', function($time) { 
    return time() + 1;  // NOW + 1 second
});
至于点击后退按钮,你会a cached page 已存储在本地计算机上的。要解决这个问题,您需要告诉本地计算机丢弃旧页面并从服务器上检索它。对此进行了讨论already been had. 但是,您仍然需要弄清楚您想在WordPress过程中的什么地方输入(挂钩)。根据输出标题的方式,可以使用wp_head hook 通过HTML或init hook 要使用header() method. 开枪,你甚至可以用wp_headers hook 然后返回一个完整的数组。

这样做之后,你必须清除your 本地计算机的缓存,这样您就可以从服务器检索新生成的带有新标题信息的页面(并且不要在本地计算机上使用旧页面)。快乐的编码!

相关推荐

Template for landing pages

我正在为一个带有登录页的商业网站(不是博客)使用WP。所以没有帖子,只有我用Elementor页面生成器创建的页面(实际上是“登录页”)。由于一个典型的主题对于登录页业务站点来说有很多不必要的东西,我决定创建一个lightweiht自定义主题。我有一个header.php, footer.php 基本css/js通过functions.php. 我想使用页面生成器创建每个页面的内容。我不知道该放什么index.php. 这是典型的:<?php get_header(); ?>