因为我的WordPress是用于团队存放文档使用,如果全部归为私密则不方便查看,而且也没有开放注册,所以需要禁止未登陆的用户查看所有文章。

  翻阅了很多热门的方案,最多的是在header.php调用functions.php的函数,但是不知道为什么一直无法调用。

  后来翻到了 wpon.cn 的方案,可以实现,在这我进行收藏和优化。

  原文章地址:https://www.wpon.cn/8873.html

 

2. 实现

  进入WordPress后台,左侧的菜单栏中选“外观”-“主题编辑器”,然后在右侧找到“函数模板(functions.php)”。

  将以下代码插入到“<?php”和第一个function函数中间,保证在加载的时候能第一个读取到钩子函数定义的检查登陆函数。

  否则会导致页面加载一部分后再跳到登陆页面。如下代码可以在游客进入主页之前就跳转到登陆页面。

//template_redirect动作钩子是一定会执行的,所以用这个钩子对全站有效
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 );
function ashuwp_show_only_login(){
    //判断登录,about页面就允许访问
    if( !is_page('about') && !is_user_logged_in() ){
        //跳转到登录页面
        auth_redirect();
        exit();
    }
}

  里面涉及到两个重要的WordPress内置函数:

    is_user_logged_in() :这是判断是否用户登陆,已经登陆返回true,未登陆返回false。

    auth_redirect() :这个函数会指向登陆页面,自动跳转到登陆页面。

相关文章:

  • 2022-12-23
  • 2021-11-23
  • 2021-06-13
  • 2022-12-23
  • 2021-04-16
  • 2021-06-09
猜你喜欢
  • 2021-10-11
  • 2021-08-20
  • 2022-12-23
  • 2021-09-19
  • 2022-12-23
  • 2021-12-09
  • 2021-11-03
相关资源
相似解决方案