现在的位置: 首页 > 互联网络 > WP相关 > 正文

WordPress特定栏目只允许特定登陆用户阅读

2010-12-31 10:50 WP相关 ⁄ 共 817字 ⁄ 字号 评论 5 条

    问题背景:在wordpress理如何让某个栏目的文章只允许特定角色的读者(如:注册用户等)登陆之后才能浏览?虽然WordPress本身也提供了相应功能来实现这个目的,包括文章私有和文章加密等,但是这些功能都比较单一,如何限定授权用户和文章的阅读范围呢?

    解决方案:大家知道,wordpress博客的访客最基本的可以分成两类,一类是非注册用户,另一类是注册用户。注册用户还可以分三六九等,包括订阅者、投稿者、管理员等等,对于已经登陆的注册用户,可以根据用户的角色来决定是否有权阅读某类文章。

    首先,可以用文本编辑器打开当前主题目录下的single.php,查找:the_content,可以找到类似代码:the_content(...),(注:…表示未知内容,不同主题不太一样),然后将其改成:

if( in_category( 'abc' ) ) {
    global $current_user;
    get_currentuserinfo();    
    if(is_user_logged_in() && $current_user->user_level > 3)

        the_content('Read more »');
    else
        echo '请登陆后阅读本文!';
}
else {
    the_content('Read more »');
};

    1)如果是限定含有某些标签的文章只对登陆用户开放,可以将以上代码in_category改成has_tag即可。

    2)WordPress注册用户的等级参见以下说明----

    0 级对应 订阅者

    1 级对应 投稿者

    2 – 4 级对应 作者

    5 – 7 级对应 编辑

    8 – 10 级对应 管理员

    更进一步:按照以上各方法修改后,搜索将无法收录这些文章,如果你希望搜索引擎收录这些文章同时又限定用户范围,可以再添加一个限定条件,具体请看:露兜博客

目前有 5 条留言    访客:4 条, 博主:1 条

  1. 落花生 2011年04月03日 1:15 上午  @回复  Δ1楼 回复

    继续学习中。。。

  2. smilebull 2011年05月29日 8:23 上午  @回复  Δ2楼 回复

    这个功能对论坛很有用

  3. win7en乐园 2011年06月09日 10:20 上午  @回复  Δ3楼 回复

    感谢分享哈!

  4. zwwooooo 2011年07月27日 11:58 下午  @回复  Δ4楼 回复

    wp各个角色分的还是比较细的


    • 管理员
      明镜 2011年07月28日 10:36 上午  @回复  ∇地下1层 回复

      欢迎WP大侠首次光临求索阁啊~~呵呵

给我留言

留言无头像?