B2主题如何批量修改文章隐藏内容阅读权限?

看到一个网友想批量修改文章权限,让网站以前的文章都设置为vip等级才可以浏览,自己一条一条修改太傻了,也太慢了。

有朋友建议他全局搜索后台的代码,通过修改代码,实现后台模板默认添加文章的阅读权限,这样的思路只能针对以后新添加的文章,但是之前历史文章是没有办法的,那怎么办呢?

理清思路

首先我们知道,文章阅读权限,是属于post-meta的属性,是被保存在数据库里的,那最快最方便的办法,当然是直接修改数据库,但是数据库字段那么多,我们要修改哪些字段?

寻找字段

比如,我们需要修改阅读权限,那么我们可以借助F12,轻松知道name字段的值,就是对应数据库保存的字段b2_post_roles,我们新建一篇文章,勾选用户等级只允许vip1和vip2,保存,我们到数据库查看一下字段的值情况。

a:2:{i:0;s:4:"vip1";i:1;s:4:"vip2";}

和我们预想的一样,那么从理论上来说,我们只需要照搬复制,新建一条记录,设置好post_id ,然后把字段 b2_post_roles,值设置为上面一条记录结果,我们就能把指定文章阅读权限设置为vip1、vip2可阅读。

数据库测试

insert into wp_postmeta values(null,文章id,'b2_post_roles','a:2:{i:0;s:4:"vip1";i:1;s:4:"vip2";}')

我们再次新建一篇文章,执行sql之后我们再看这篇文章的属性,是可以看到隐藏内容权限这里,勾选了vip1和vip2,但是默认的选项还是无限制,怎么回事呢?

我们再F12看一下,支付费用可见、支付积分可见、限制等级可见这些值的name名称,原来我们漏掉了另一个字段 b2_post_reading_role ,并且限制等级可见的值是roles,那我们再多补上一条记录,就可以让这篇文章的权限设置为限制等级可见了。

insert into wp_postmeta values(null,文章id,'b2_post_reading_role','roles')

批量sql语句

我们知道一篇文章如何修改之后,接下来我们就可以直接批量获取post_id,写一个批量替换/新增的阅读权限的sql。

隐藏内容,您需要满足以下条件方可查看
End

注:

如果你执行sql的时候提示“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 3”。

需要先设置一下phpMyAdmin默认的分隔符

下载权限

查看
  • 免费下载
    评论后下载
    登录后下载

  • {{attr.name}}:
您当前的等级为
您有每天免费下载所有资源次的特权,今日剩余 已取得下载权限

人已赞赏
二次开发

User ID not found in the token登录出错怎么解决?

2020-10-7 18:01:02

二次开发

B2相关文章背景图扩大点击范围

2020-10-16 0:45:30

免责声明本文中提到的资源均来自于互联网,仅供个人学习交流,若您喜欢本文可附上原文链接随意转载。
版权人申诉:我要申诉
3 条回复 A文章作者 M管理员
  1. 辛苦了,很好的教程

  2. 哇,博主牛逼,正好需要这个方法!

  3. 辛苦了,很好的教程

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索