登录网站后查看

WordPress网站需要注册会员并登录后才能访问的方法

自己建网站的时候,往往会有下面这两种情况不想要别人查看网站内容。1、纯粹的个人博客,不希望被别人查看。2、某些内部网站,不希望不相关的人访问。3、特殊资源站。

那么如果你是用WordPress搭建的网站,就可以很简单的通过WordPress插件实现WordPress登录可见的功能。

下面是奶爸给大家分享的几款实现wordpress需要注册才能观看的插件。

Registered Users Only

Registered Users Only这款插件是在WP建站吧那看到的,插件功能很简单,安装后启用,在没有注册登录的情况下,都会重定向到登录界面。

Registered Users Only

如果你希望开放注册,那么则勾选允许任何人注册,如果你想访客临时可以访问网站内容,那么就勾选访客模式。

下载地址

Force Login

Force Login更加简单,下载启用后直接开启全站需要登录查看功能,都没有单独的设置页面,启用插件就需要登录查看,禁用插件就不需要登录查看网站内容。

下载地址

My Private Site

我的私密网站,My Private Site这款插件更加利于资源营销类网站使用,因为它除了可以重定向未登录用户到登录页面,还可以自定义登录界面、自定义注册界面。

除此之外,My Private Site最强大的地方在于可以排除页面,你可以设置首页无需登录即可查看,还可以增加不需要登录即可查看的页面。

同时,如果开启了需要登录才可查看页面,还支持登录后跳转到登录前的页面。

My Private Site简单使用方法介绍:

Private Site 勾选,则开启登录访问。

Custom Login 是自定义登陆页面的选项。

Visible Exclusions 是排除页面的选项。

下载地址

按需显示隐藏

如果你想自己设置显示特定内容和隐藏特定内容的方法,那么可以使用Wicked Block Conditions

用代码的话就下面这个

add_shortcode('hide','loginvisible');
function loginvisible($atts,$content=null){
if(is_user_logged_in() && !is_null($content) && !is_feed())
return $content;
return '';
}

然后文章里面用[hide]和[/hide]包住隐藏内容就可以了。

如果你只是想要简单的从网站首页或者分类页隐藏文章,那么可以参考:WordPress在网站首页或分类页隐藏特定文章的方法

输入密码可见

如果想实现WordPress文章或者分类或者整个网站需要输入密码才能查看访问,那么可以参见这篇文章:3款WordPress需要密码才能访问网站的插件_密码查看内容

使用代码隐藏分类登录可见

//template_redirect动作钩子是一定会执行的,所以用这个钩子对全站有效
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 );
function ashuwp_show_only_login(){
//判断登录,about页面就允许访问
if( !is_page('about') && !is_user_logged_in() ){
auth_redirect(); //跳转到登录页面
exit();
}
}

如果是分类目录要登录可见,就用下面的代码。

// 首页和指定分类文章可以访问
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();
}
}

!in_category前面的感叹号代表的是不是,意思是说如果不是id为3和2的分类,以及不是首页,没有登录,那么就跳转到登录页面。

代码添加到主题函数模板functions.php中生效。

注意的是,in_category只支持一级目录,如果有子目录,需要全部列出,或者加上下面的判断。

if ( ! function_exists( 'post_is_in_descendant_category' ) ) {
function post_is_in_descendant_category( $cats, $_post = null ) {
foreach ( (array) $cats as $cat ) {
// get_term_children() accepts integer ID only
$descendants = get_term_children( (int) $cat, 'category' );
if ( $descendants && in_category( $descendants, $_post ) )
return true;
}
return false;
}
}

然后这样调用

<?php if ( in_category( 'fruit' ) || post_is_in_descendant_category( 'fruit' ) ) {
// These are all fruits…
}
?>

参考

终极插件

上面的方法一一测试了都不满意?给你推荐一款奶爸目前正在使用的解决方案,一款功能强大的判断插件。

支付 ¥9.9 元 查看此处付费内容
Scroll to Top