分类、专题、标签、文章、页面添加访问权限(2022.2.25更新版本)

 

最新版本意见转移到这篇文章持续更新 文章链接

旧版本已不再维护

首先感谢这篇文章给我的启发https://www.zibll.com/forum-post/3858

因为各种原因你总是会想给某些分类加锁的,要么是只有认证用户才可以用,要么是会员才可以访问。每篇文章加挺繁琐的,那有没有可以通过分类、标签或者专辑来加权限呢,于是就诞生了如下代码

 

先上代码,这个代码实在上述文章的启发下大量更改的结果,我觉得挺好用的,如果你需要的话可以很容易更改

提供了黑/白名单两种分配权限的方式

func.php代码(3.0版本,2022.2.23日更新,修复部分bug)

blockingaccess.php代码

<?php get_header(); ?>
    <main class="container">
            <div class="container-fluid container-footer">
                
            <center><div class="wp-block-image"><figure class="size-large is-resized"><img src="http://cdn.caleb2048.com:180/file/icon/icon-warning.png"  width="15%"/></figure></div><center>
                    <!--未登录提示-->
                     <?php if (!is_user_logged_in()){
                    echo '<div class="mb20 wp-posts-content">
                    <div class="hide-post mt6">
                    <div class=""><i class="fa fa-unlock-alt mr6"></i>需要登录</div>
                    <div class="text-center em09 mt20">
                      <p class="separator muted-3-color mb20">请先登录,再访问此页面</p>
                  </div>
                  ';
                    }?>
                    
                    
                     <!--权限不够展示-->
                    <?php if (is_user_logged_in()){ 
                    echo '<div class="mb20 wp-posts-content">
                         <div class="hide-post mt6">
                         <div class=""><i class="fa fa-unlock-alt mr6"></i>权限不足</div>
                         <div class="text-center em09 mt20">
                           <p class="separator muted-3-color mb20">请联系站长获取更高权限</p>
                       </div>
                       ';
                     
                    } ?>
          </div>
          </main>
 <?php get_footer(); ?>

 

使用方法

在主题根目录下创建func.php和blockingaccess.php并且将代码复制进去

blockingaccess.php这个名字是可以更改的,注意配合func.php里

include( get_query_template( ‘blockingaccess’ ) );这行代码

需要注意的是,黑白名单里,同一个分类、专题、或者页面那些只能在一个部分中填写

就比如在未登录 那部分名单里有id为1的文章,那么已登录、vip1,vip2的名单里面是不能出现id为1的文章的

黑白名单的判断逻辑如下:

未登录<已登录<vip1<vip2

如果未登录就能看的内容,那么已登录或者vip1或者vip2都一定能看

如果vip1不能看的内容,未登录和已登录是不能看的,但是vip2是能看的。如果你想vip2不能看,则直接在vip2中定义内容不能看。

 

 

 

 

请登录后发表评论