WordPress加密某个分类的所有文章

日期: 标签:SQLWordPress教程 37 条留言
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

目前该功能已经做成插件,需要的可以到此下载

     WordPress默认情况下不能一次性给某个分类下的所有文章加密。今天有位网友提到这个问题:

一般都能在写文章时设置加密,但是如何现在给已经写好的一个分类的所有文章快速全部加密呢?不会只能一个一个编辑修改吧?

     其实要想加密某个分类的所有文章,可以直接修改数据库,下面提供我写的SQL,在我的博客上测试成功:

UPDATE wp_posts, wp_term_relationships, wp_term_taxonomy
SET wp_posts.post_password = '123456'
WHERE
wp_posts.ID = wp_term_relationships.object_id
AND 
wp_term_taxonomy.taxonomy = 'category'
AND 
wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id
AND 
wp_posts.post_status = 'publish'
AND 
wp_posts.post_type = 'post'
AND 
wp_term_taxonomy.term_id = '5';

     将以上第2行的 12345 改成你要设置的密码,将最后一行的5,改成你要修改的分类ID号。执行以上SQL语句之前,请对你的数据库做好备份!

     以上SQL能够执行的前提是,你的WordPress博客数据库表用的是WordPress默认的数据库表名称wp_posts、wp_term_relationships,如果不是,就自己更改一下SQL中表名吧。

     附录,分类id的获取方式:进入WordPress管理后台,日志 - 分类,各个分类标题的链接类似,http://www.example.com/wp-admin/categories.php?action=edit&cat_ID=17 这其中cat_ID=17,17就是该分类的id

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜博客 https://www.ludou.org/wordpress-encrypt-all-articles-of-a-category.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

37 条留言

点此留言
  1. 棺材中的尘埃

    虽然不怎么写需要加密的文章,但还是欣赏下代码!

  2. Ludou

    @棺材中的尘埃 不知道什么原因,你每次来我博客评论,都会被Akismet判为垃圾评论。平时没怎么注意这个垃圾评论栏,所以有时会过很长时间才能把你的评论从垃圾评论中拉出来。

    不知道你在其它博客评论会不会遇到这样的情况?

  3. 跑酷

    博主,你的博客挺牛B的嘛!

  4. Ludou

    @跑酷 算不上牛B
    本博客的内容只写给有需要的人看,并不适合大众。

  5. 小酷

    是不是他的网址问题?导致垃圾评论

  6. Ludou

    @小酷 应该是这样的,Akismet是根据网址和邮箱来识别不同人的。

  7. k

    版主你好,在google搜寻看到这一篇文章,有用来测试一下,真的解决了要大量改密的困扰,但是后来有发现一个小问题。
    在mysql的资料库中,cat_id=team_id,但是却不一定会等同于term_taxonomy_id,所以还得去wp_term_taxonomy看二者的对照。

  8. Ludou

    @k 你的说的很对,我犯了个错误。

    当标签tag和分类category同名的时候,他们的term_id是相同的!

    所以这种情况下,在WordPress后台查看标签tag和分类category的ID是相同的,所以不能用这个ID来标识分类。

    应该再到wp_term_taxonomy表中查找term_id = 分类ID,且 taxonomy=’category’ 的记录的term_taxonomy_id,这才是分类的ID

  9. Ludou

    @k SQL语句已经做了更改,欢迎发表评论。

  10. k

    @Ludou 刚刚测试了一下,这个改不到私密与草稿状态的,所以大概还是会继续用之前的那个版本吧,毕竟都是要去后台了,去看一下对照也还挺顺的……
    上面的publish与post是必须的吗?

  11. Ludou

    @k 我对SQL修改的记录类型做了限制,只修改公开的记录,不包括私密、修订、垃圾箱和草稿等,如果你想修改包括以上所有类型的文章,请将以下代码去除:
    AND
    wp_posts.post_status = 'publish'

    以下代码表示限定只修改文章post记录,不修改页面page、修订版revision、附件attachment:
    wp_posts.post_type = 'post'

    publish与post不是必须

  12. k

    @k 直接回这里了。
    刚刚只删除publish的部份,post留下了,目前测试的结果很满意~真的很谢谢你。^^

  13. 佑

    @Ludou 在哪里改啊!!好几个表呢我又不会瞎改

  14. Ludou

    @ 你可以用插件

  15. Junan

    收藏插件以后用、呵呵、

  16. Yu

    水煮鱼大师~我想请问一下,有没有博客加密的插件呢~
    就是需要输入密码才可以访问wordpress~

    谢谢了。~

  17. Ludou

    @Yu 首先声明,本人以及本博客均与水煮鱼没有任何关系。
    “需要输入密码才可以访问wordpress”,具体看本文:
    https://www.ludou.org/password-protecting-your-wordpress-blog.html

  18. Ricky

    @Ludou "水煮鱼大师",呵呵,笑死我了,一定是搞混了,话说我也看过“水煮鱼”的论坛~~~

  19. Ricky

    @Ricky 不对,是博客!呵呵O(∩_∩)O~

  20. Ricky

    不错,有没有这种插件或代码,我想让某个 子菜单 (single page)加密,进入就要密码,一次解密后,里面的所有东西包括评论都可以看,一旦离开,就又变成一个类似加密的QQ空间。这种加密又不影响其他子菜单!(本人WordPress3.0.1+MimboTheme 2.2)

  21. Ludou

    @Ricky 要想加密某个single page(中文成:页面)

    请在后台进入该页面的编辑页,右上角有个
    公开度: 发布

    点击旁边的“编辑”,选择“密码保护”,填上密码就可以了。

  22. 求索阁

    原来兜儿博客就有求索阁一直在苦苦寻求的给某栏目加密的方法啊~!

  23. 求索阁

    求索阁测试成功!谢谢兜儿博主~

  24. 求索阁

    再问下露兜博主,怎么让某个栏目的文章只允许特定角色的读者(如:作者、编辑等)才能浏览呢?

  25. Ludou

    @求索阁 我写了一篇文章,你可以看看:
    https://www.ludou.org/wordpress-post-for-specific-user.html

  26. 求索阁

    @Ludou 那先前已经按照该文的方法对某栏目进行了加密操作。现在想按照你的最新文章里的方法对某栏目实行权限阅读,是否应该把本文里加密操作先行取消然后再用新方法?怎么操作呢?

  27. Ludou

    @求索阁 https://www.ludou.org/wordpress-plugin-post-encryption-and-decryption.html

    这个插件有分类文章批量去除密码的功能!或者你按照这篇文章的说明:

    https://www.ludou.org/wordpress-encrypt-all-articles-of-a-category.html

    将第2行代码改成:
    SET wp_posts.post_password = ''

    运行一下修改后的SQL就可以去除某分类下所有文章的密码了!

  28. EmiNarcissus

    啊,还有这个方法,感谢分享~~~

  29. barrett

    你好,如何加密某个标签的所有文章呢?不好意思。

  30. barrett

    @barrett 准确说应该是加密含有某个标签的所有文章,是否可以呢

  31. Ludou

    @barrett 插件:
    https://www.ludou.org/wordpress-plugin-post-encryption-and-decryption.html

  32. inphon

    我的问题是,能不能把某个分类目录加密,发到这个目录的文章别人都看不到,别人也看不到这个目录,而不是把已经发了的批量做一次加密。

  33. 泡泡龙

    我想问一下博主,设置成私密的文章能通过这个方法被搜索引擎收录吗?

    我的意思是有些文章不想让搜索引擎看到,只是为了优化其他文章才伪原创的,所以不希望访问者看到,但希望搜索引擎能看到。这可能实现吗?

  34. 泡泡龙

    不好意思,写错了,应该是:

    我的意思是有些文章不想让访问者看到,只是为了优化其他文章才伪原创的,所以不希望访问者看到,但希望搜索引擎能看到。这可能实现吗?

  35. Ludou

    @泡泡龙 文章页面不开启缓存的话,是可以实现的。过几天写篇文章分享一下。

  36. 泡泡龙

    @Ludou 那太感谢了,期待中!!!

    博主QQ多少啊?加一下您吧?

  37. Ludou

    @泡泡龙 https://www.ludou.org/wordpress-post-for-search-engine-only.html

发表留言