使用IS_USER_LOGGED_IN()锁定整个站点

时间:2020-04-08 作者:stemlund

我想知道是否使用is_user_logged_in() 包装所有主题模板(page.php、index.php等)是要求登录的好方法。我想使用SAML允许用户登录。我尝试使用贾斯汀·塔洛克的插件“Members”来锁定该网站,但它似乎对SAML不起作用。

我现在在一个沙盒网站上做这项工作(现在还没有公开,或者我会分享)。我知道我还需要禁用RSS提要。

我想听听其他关于这是否安全的意见(这只是我们不愿意公开的内容,但如果是的话,也不是世界末日),是否有其他方法可以通过使用这种方法公开内容(除了我将禁用的RSS)。

是否有一个简单的插件可以锁定站点并要求登录(但允许定制登录屏幕以使用SAML?)

下面是我将使用的代码。

<?php if ( is_user_logged_in() ) {

//all of the template code here (header, nav, body content, sidebar, footer)

 } else { 
//a link via SAML to login to the site

} ?>

1 个回复
SO网友:Shazzad

在加载任何前端模板之前,WordPress会触发一个操作-template_redirect. 如果用户未登录,则可以使用此操作挂钩显示SAML登录。这样,您就不必在每个模板文件中都添加条件。

// you can place this code in your theme\'s functions.php file.

add_action( \'template_redirect\', \'wpse_login_required\' );

function wpse_login_required() {
    if ( ! is_user_logged_in() ) {
        // a link via SAML to login to the site
        // ....

        // kill the execution
        exit;
    }
}
这样,内容就永远不会公开。

相关推荐

Problem with my Login Plugin

我正在尝试用下面的代码创建我的测试登录插件,它不会给我任何错误,但不想工作。我是个初学者,有人能帮我指出正确的方向吗。谢谢<?php /** * Plugin Name: LD Login Form * Plugin URI: https://testsite.co.za * Description: Empire Investment Login Form * Version: 1.0&#x