最新版本意见转移到这篇文章持续更新 文章链接
旧版本已不再维护
首先感谢这篇文章给我的启发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中定义内容不能看。
参与PK投票
希望主题增加这个功能
太棒了