免插件实现WordPress指定分类下的文章登录可见

之前一直在想,如果将自己博客的其中部分分类直接搞成用户登录以后才见,但是苦于不会WordPress这个开源的程序所以一直阻碍我的前行。今天在逛知更鸟博客的时候,恰好看到它的那篇:WordPress 只允许游客浏览指定分类的文章,于是果断的转载了过来。

对于WordPress可以实现的功能非常的多,尤其是类似于begin主题作者这样的大神,很多功能都是顺手拈来而已,而我等小白只能仰望。

其中代码中的“!in_category( array( 3,2 )”其中的3和2指的是分类的ID,可以在文章——分类目录当中查找到。

“!in_category( array( 3,2 )”方法为:指定分类ID为3、2不登录可见(其他分类需要登录)

“in_category( array( 3,2 )”方法为:指定分类ID为3、2登录可见(其他分类则不需要登录)
注意两个方法差别就是一个“!”感叹号的差别,却能够实现截然不同的功能,大家使用的时候还是稍加注意。

通过以上方法,您甚至可以将您的博客主题直接摇身一变转换成权限可控的论坛,设置只有登录的用户才能够访问一些特定内容的时候,非常的好用。具体代码如下:

// 首页和指定分类文章可以访问转载自:知更鸟https://zmingcx.com/wordpress-only-allows-viewing-of-specific-posts.html
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 );
function ashuwp_show_only_login(){
  //判断登录,只允许访问ID为3和2的分类文章
  if( !in_category( array( 3,2 ) ) && !is_home() && !is_user_logged_in() ){
    auth_redirect(); //跳转到登录页面
    exit();
  }
}

将以上代码粘贴到您主题的function.PHP文件的最后即可。对于一些需要控制权限的博主,这个功能还是非常实用的。

0
分享到:

评论0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址