问题背景:在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 级对应 管理员
更进一步:按照以上各方法修改后,搜索将无法收录这些文章,如果你希望搜索引擎收录这些文章同时又限定用户范围,可以再添加一个限定条件,具体请看:露兜博客 。
继续学习中。。。
这个功能对论坛很有用
感谢分享哈!
wp各个角色分的还是比较细的
管理员 明镜: 2011年07月28日 10:36 上午 ∇地下1层
欢迎WP大侠首次光临求索阁啊~~呵呵