WordPress限制游客查看文章

1. 前言

  因为我的WordPress是用于团队存放文档使用,如果全部归为私密则不方便查看,而且也没有开放注册,所以需要禁止未登陆的用户查看所有文章。翻阅了很多热门的方案,最多的是在header.php调用functions.php的函数,但是不知道为什么一直无法调用。后来翻到了 wpon.cn 的方案,可以实现,在这我进行收藏和优化。原文章地址:详解WordPress限制游客浏览部分文章

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() :这个函数会指向登陆页面,自动跳转到登陆页面。
posted @ 2020-12-27 22:38  苍凉温暖  阅读(498)  评论(0编辑  收藏  举报