安严中国SEO博客出售熊掌号 建站教程 | seo地图 | 博客地图

WP站点特定文章只允许指定用户阅读的方法-纯小白代码-中国SEO优化-上海SEO安严博客
  • 安严网络!苏州SEO企业级推广团队!
  • 提供seo技术学习教程!百度关键词推广、seo外包服务。
  • SEO优化学习博客,分享网站搭建流程/seo技术教程,
  • seo优化知识,网络营销推广,百度seo快排技术等SEO优化技术。
  • 网站seo服务/企业网站搭建/网站托管seo外包,请点这里网站服务,信任共赢,诚开天下

WP站点特定文章只允许指定用户阅读的方法-纯小白代码

凭借着强大的扩展性以及良好的代码支持,WordPress已经转变成一个功能强大的CMS程序。这里介绍一个WordPress程序网站新的扩展功能——文章只允许特定用户阅读。
WordPress程序其本身也有相应的功能,例如文章私有和文章加密等,但博主觉得这些功能都比较单一。本文详细给你介绍:扩展授权用户可阅读的文章权限设置这方面的代码内容。

某分类/标签的文章只允许登陆后查看

网站的访问用户一般可以分成两类。一类是非注册登陆的浏览用户(游客),另一类是注册了账户并登陆的用户。例如很多论坛中部分帖子和内容只能登陆后查看。如果想要实现这个功能——某个分类/标签的文章只允许登陆用户阅读。可以用文本编辑器打开当前主题目录下的”single.php“查找:the_content可以找到类似代码:the_content(…),(注:…表示未知内容,不同主题内容不一样)将其改成:

/**
* 名称:WordPress某个分类/标签的文章只允许登陆用户阅读
* 作者:安严小白
* 博客:https://www.feiheseo.cn/
* 最后修改:2018年1月9日
*/

if( in_category( array( 'music', 'news' ) ) ) {
if(is_user_logged_in())
// 注意把下面的...改成你的主题中代码,不要照抄
the_content(...);
else
echo '请登陆后阅读本内容!';
}
else {
// 注意把下面的...改成你的主题中代码,不要照抄
the_content(...);
}

这样分类别名名称为 music 和 news?分类下的文章内容就只对登陆用户开放了,游客点击将会看到提示”请登陆后阅读本内容!”,如果你想再添加一个分类“images”,可以将 array( ‘music’, ‘news’ ) 改成 array( ‘music’, ‘news’, ‘images’ ),更多依次类推;如果只限定一个分类music可以写成 in_category( ‘music’ ) 。如果是限定含有某些标签的文章只对登陆用户开放,可以将以上代码第 8 行改成:

if( has_tag( array( 'music', 'news' ) ) ) {

music和news为标签的名称或别名,多个标签的写法跟分类相同!只要在后面添加上其名称就好了。

某个分类/标签的文章只允许特定的注册用户查看

WordPress站点的注册用户还可以细分为各种身份。例如订阅者、投稿者等等。我们同样可以根据这些用户角色来决定其是否有权阅读网站文章和内容,在上面的代码基础上修改加个限制条件就可以了,将第一部分代码的第 9 行开始改成:

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 级——管理员

 

文章回复或登录可见

如果你想隐藏文章的部分内容(如猜谜游戏的谜底),让读者登录后才可查看隐藏的内容,可以使用wordpross插件:Login to view all。如果你是想让读者回复后才可以阅读隐藏的内容,可以用wordpross插件:Easy2hide

某个分类/标签的文章内容密码可见

如果你想给某个分类或标签下的文章全部添加密码,只有知道密码的用户才能阅读这些文章,你可以使用WordPress插件:Post Encryption And Decryption。

最后:文章的搜索收录说明

按照以上各方法修改后,搜索引擎将无法收录这些文章,如果你希望搜索引擎收录这些文章同时又限定用户范围,可以再添加一个限定条件。

代码如下:

/**
* 名称:让隐藏的文章收录的代码
* 作者:飞鹤 * 博客:https://www.feiheseo.cn/ 
* 最后修改:2018年1月9日 
*/

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是全文输出的话,其他用户还是可以通过订阅看到相关的内容的

最后一点,以上所做的修改不是完全隐藏文章,所有用户都可以看到文章的标题!


上海SEO技术博客安严SEO版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:WP站点特定文章只允许指定用户阅读的方法-纯小白代码
喜欢 ( 2)
[感谢你的支持]
分享 (0)
安严seo
关于作者:
2017年入行的一个网站seo优化技术小白。单身也很宅。没有长出倾国倾城的容貌但也迷住万千女人的心;没有拥有富可敌国的财富但也渴望征服世界的经济!

您必须 登录 才能发表评论!