全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1931|回复: 3

谁对wordpress熟悉,求助一个问题

[复制链接]
发表于 2011-8-29 21:25:14 | 显示全部楼层 |阅读模式
我想实现指定等级大于 1 的用户组阅读指定的栏目下的文章,我在网上找了个教程,但可能我是用最新版本的3.2.1,代码添加后,页面不能打开。

教程如下:

某个分类/标签的文章只允许登陆用户阅读

网站的访客最基本的可以分成两类,一类是非注册用户,另一类是登陆用户,很多论坛的就是这样区分用户,部分内容只能登陆后查看,之前我写了一个插件Login to view all来让WordPress来实现类似功能,但是只能对单篇文章起作用,如果想要实现某个分类/标签的文章只允许登陆用户阅读,可以用文本编辑器打开当前主题目录下的single.php,查找:the_content,可以找到类似代码:the_content(...),(注:…表示未知内容,不同主题不太一样),将其改成:


if( in_category( array( 'music', 'news' ) ) ) {
    if(is_user_logged_in())
        the_content(...);
    else
        echo '请登陆后阅读本文!';
}
else {
    the_content(...);
}


这样分类别名或名称为 music 和 post 的分类下的文章内容就只对登陆用户开放了,游客将会看到提示"请登陆后阅读本文!",如果你想再添加一个分类images,可以将 array( 'music', 'post' ) 改成 array( 'music', 'post', 'images' ),更多依次类推;如果只限定一个分类music可以写成 in_category( 'music' ) 。music和news为标签的名称或别名,多个标签的写法跟分类相同!

某个分类/标签的文章只允许特定角色的注册用户阅读


WordPress站点的注册用户还可以分三六九等,包括订阅者、投稿者、管理员等等,对于已经登陆的注册用户,同样可以根据用户的角色来决定是否有权阅读文章,在第一部分内容的基础上再加个限制条件就可以了,将第一部分代码的第 2 行改成:


    global $current_user;
    get_currentuserinfo();
   
    if(is_user_logged_in() && $current_user->user_level > 3)

     这样等级小于 3 的注册用户将无权阅读分类music和news下的文章,文章标签的限定类似,详见第一部分的说明。WordPress注册用户的等级参见以下说明:

    0 级对应 订阅者
    1 级对应 投稿者
    2 – 4 级对应 作者
    5 – 7 级对应 编辑
    8 – 10 级对应 管理员

[ 本帖最后由 11qq 于 2011-8-29 21:28 编辑 ]
发表于 2011-8-29 22:12:37 | 显示全部楼层
打不开,应该有提示吧,
等级大于 1 的用户组阅读的话用current_user_can('level_1')试试。。。
其他分类的话,就如教程所说判断一下分类或者标签即可。。。
发表于 2011-8-29 23:31:05 | 显示全部楼层
仔细看就知道了
 楼主| 发表于 2011-8-30 00:23:16 | 显示全部楼层
我搞定了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-1-20 10:48 , Processed in 0.060370 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表