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

Ludou

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

本文版权归露兜博客所有,转载引用请完整注明以下信息:
本文作者:Ludou
本文标题:WordPress加密某个分类的所有文章
本文地址:http://www.ludou.org/wordpress-encrypt-all-articles-of-a-category.html

露兜博客博主,男生,业余Web程序员,儒家思想受益者。文采不佳,不喜欢聚光灯,不喜欢吹牛,不喜欢无序的做事方式。闲时喜欢写些代码自娱自乐,并在博客中分享一些个人技术经验。

标签: ,

29 条评论

我来说两句
  1. 棺材中的尘埃

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

    • Ludou

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

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

  2. 跑酷

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

  3. 小酷

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

  4. k

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

    • Ludou

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

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

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

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

    • Ludou

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

      • k

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

        • Ludou

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

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

          publish与post不是必须

        • k

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

  5. Junan

    收藏插件以后用、呵呵、

  6. Yu

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

    谢谢了。~

  7. Ricky

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

    • Ludou

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

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

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

  8. 求索阁

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

  9. 求索阁

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

  10. 求索阁

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

  11. EmiNarcissus

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

  12. barrett

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

发表评论

因博主长期在外地出差,您的留言可能暂时不会得到回复。

订阅评论