【问题标题】:Make Wordpress-blog totally private to logged out visitors?让已登出的访问者完全私密的 Wordpress 博客?
【发布时间】:2011-08-10 12:22:37
【问题描述】:

我正在构建一个 Wordpress 站点,用户需要登录才能访问博客本身。目前,我已经使用了这个:

add_action('wp_head','foofunc');
function foofunc() {
    if(!is_user_logged_in()) die();
}

但是,这样我无法将用户重定向到另一个 url,因为输出已经开始。有没有办法将未登录的用户重定向到一个 url?

我会使用 init 但这也会重定向 wp-admin 中的用户。

玛蒂莱恩

【问题讨论】:

    标签: php wordpress redirect


    【解决方案1】:

    使用“init”处理程序和 is_admin() 来检查用户是否已经在管理面板中:

    add_action('init','foofunc');
    function foofunc() {
        $isLoginPage = strpos($_SERVER['REQUEST_URI'], "wp-login.php") !== false;   
        if(!is_user_logged_in() && !is_admin() &&  !$isLoginPage) {
            header( 'Location: http://yourdomain.com/login' ) ;
            die();
        }
    }
    

    【讨论】:

    • 我正在做一个插件,所以需要通过add_action来完成。
    • 所以add_action("init", "foofunc") 将是解决方案。如果它导致 wp-admin 出现问题,只需使用 is_admin() 来检测用户是否已经在管理面板中。我将使用新代码更新我的答案。
    • is_admin 是我想要的!谢谢。
    • 实际上这个 sn-p 完全阻止了我登录。知道如何解决这个问题吗?
    • 好的,那么你需要检查当前页面是否是登录页面,在这种情况下,不要做重定向。您可以使用REQUEST_URI 查找当前 URL 并检查它是否包含“wp-login”。我已经更新了示例代码。
    【解决方案2】:

    这是一个开箱即用的交钥匙解决方案。

    http://wordpress.org/extend/plugins/more-privacy-options/

    【讨论】:

      【解决方案3】:
      1. 您可以使用 s2member 插件。它创建了 4 个用户级别,第一个级别是免费用户。创建页面时,您可以为该页面选择 S2Member 用户级别要求。
      2. http://www.rlmseo.com/blog/require-login-for-wordpress-pages/ 创建一个页面密码保护模板,该模板遵循该链接中的格式。将模板应用到需要密码保护的页面。
      3. 您可以编写一个函数来检查用户是否使用 *is_user_logged_in()*、*is_admin()* 和 *is_page()* 在页面上登录,然后重定向。使该功能成为动作。然后将该动作挂钩到 init。 (如果 init 是正确的钩子,我有点模糊,但如果任何输出已发送到屏幕,您的重定向将不会发生)

      【讨论】:

        【解决方案4】:

        最干净的实现:

        if( (!is_user_logged_in()) && ($GLOBALS['pagenow'] !== 'wp-login.php')  ) {
          wp_redirect('http://anothersite.com');
        }
        

        可以按原样放在functions.php中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多