WordPress设置文章仅允许特定用户可以阅读
现在WordPress已经不仅仅是一个博客了,更多时候很多人都把WordPress当功能强大的CMS使了,WordPress之所以越来越受欢迎,主要在于它强大的扩展性以及良好的社区支持,看看我博客里的WordPress教程就知道了。今天,我将给你介绍一个新的WordPress扩展功能,文章只允许特定用户阅读。如果你不喜欢此功能,可以忽略以下内容! WordPress本身也提供了相应功能来实现这个目的,包括文章私有和文章加密等,但是这些功能都比较大一,如何限定授权用户和文章的范围呢?本文将给你介绍这方面的内容。 一、某个分类/标签的文章只允许登陆用户阅读 网站的访客最基本的可以分成两类,一类是非注册用户,另一类是登陆用户,很多论坛的就是这样区分用户,部分内容只能登陆后查看,之前我写了一个插件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' ) 。如果是限定含有某些标签的文章只对登陆用户开放,可以将以上代码第一行改成: if( has_tag( array( 'music','news' ) ) ) { music和news为标签的名称或别名,多个标签的写法跟分类相同! 二、某个分类/标签的文章只允许特定角色的注册用户阅读 WordPress站点的注册用户还可以分三六九等,包括订阅者、投稿者、管理员等等,对于已经登陆的注册用户,同样可以根据用户的角色来决定是否有权阅读文章,在第一部分内容的基础上再加个限制条件就可以了,将第一部分代码的第 2 行改成: global $current_user; get_currentuserinfo(); if(is_user_logged_in() && $current_user->user_level > 3) 这样等级小于 3 的注册用户将无权阅读分类music和news下的文章,文章标签的限定类似,详见第一部分的说明。WordPress注册用户的等级参见以下说明:
三、某个分类/标签的文章只允许知道密码的用户阅读 如果你想给某个分类或标签下的文章全部添加密码,只有知道密码的用户才能阅读这些文章,你可以使用我写的WordPress插件:Post Encryption And Decryption,或者看这篇教程操作:WordPress加密某个分类的所有文章 补充说明: 按照以上各方法修改后,搜索将无法收录这些文章,如果你希望搜索引擎收录这些文章同时又限定用户范围,可以再添加一个限定条件,将第一部分代码的第 2 行改成: function is_se() { $u_agent = $_SERVER['HTTP_USER_AGENT']; $spiders = '/(spider|bot|slurp|Mediapartners|crawl)/i'; if ( preg_match($spiders,$u_agent) ) return 1; else return 0; } if(is_user_logged_in() || is_se()) 限制标签、用户等级等的修改方式一样!另外,如果你的Feed是全文输出的话,其他用户还是可以通过订阅看到相关的内容的!最后一点,以上所做的修改不是完全隐藏文章,所有用户都可以看到文章的标题,如果你想让未授权的用户连标题都看不到,请自行解决,或者可以参考下文:WordPress技巧: 对游客隐藏部分文章 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- WordPress速度优化-Nginx fastcgi_cache缓存加速
- 为WordPress子分类自动设置指定的分类模版
- WordPress视频播放器插件 Easy Video Player
- WordPress提示require_once() Failed opening required的解
- 让WordPress文本小工具支持简码(shortcodes)和PHP代码
- wp_term_relationships分类关系表与其它数据表的关联关系:
- wordpress非插件实现xml格式网站地图
- WordPress 函数:is_active_sidebar判断边栏是否调用了小工
- WordPress 主题创客云专版安装说明
- WordPress一次性输出几个分类的最新文章