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
露兜
ourwindow@163.com  QQ 825533758   微信号 ludou364939

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看:西西弗sisyphe

37 条留言

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

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

    • Ludou

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

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

  2. 跑酷

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

    • Ludou

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

  3. 小酷

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

    • Ludou

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

  4. k

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

    • Ludou

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

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

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

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

    • Ludou

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

      • k

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

        • Ludou

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

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

          publish与post不是必须

        • k

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

      • 佑

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

  5. Junan

    收藏插件以后用、呵呵、

  6. Yu

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

    谢谢了。~

    • Ludou

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

      • Ricky

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

        • Ricky

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

  7. Ricky

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

    • Ludou

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

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

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

  8. 求索阁

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

  9. 求索阁

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

  10. 求索阁

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

    • Ludou

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

      • 求索阁

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

        • 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就可以去除某分类下所有文章的密码了!

  11. EmiNarcissus

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

  12. barrett

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

    • barrett

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

      • Ludou

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

  13. inphon

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

  14. 泡泡龙

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

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

  15. 泡泡龙

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

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

    • Ludou

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

      • 泡泡龙

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

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

        • Ludou

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

发表留言