WordPress将某个文章设置为游客需要登录才可以访问

前言

网站的注册用户是最有价值的用户,这些人都是忠实的访客,我们应该奖赏他们。其间一个奖赏的办法,就是给注册用户同享最新的优质内容。也就是说,可以在某些文章中躲藏部分优质的内容,要求用户登录后才可以查看,这也是鼓动用户注册网站的办法之一。下面就来说说怎么实现这些功能。

整篇访问限制

当我们需要将整篇内容进行隐藏的时候可以用上这个方法,把下面的代码添加到functions.php的最下面。然后在编辑文章的最右上角点击显示选项,勾选自定义栏目,在底部添加自定义栏目中点选输入新栏目输名称post_user_only,输入值1,即可,如果还不懂,请看底部图解。

/*
*设置不允许游客访问某些内容。
*然后在文章右上角点"显示选项",勾选"自定义栏目",在底部"添加自定义栏目"中点选"输入新栏目"输名称"post_user_only",输入值"1",即可。
*/
add_filter('the_content','post_user_only');
function post_user_only($text) {
global $post;
$post_user_only = get_post_meta($post->ID,'post_user_only',true);
if($post_user_only) {
global $user_ID;
if(!$user_ID) {
$redirect = urlencode(get_permalink($post->ID));
$text = '<div class="alert alert-danger">该资源<a href="http://www.svlik.com/wp-login.php?redirect_to='.$redirect.'" target="_blank" rel="nofollow"><span style="color: #3366ff;">登录</span></a>后才可访问,如果您没有账号,可以先进行<a href="http://www.svlik.com/wp-login.php?action=register"><span style="color: #3366ff;">注册</span></a>。</div>';
}
}
return $text;
}

章节访问限制

如果你仅仅需要将一篇文章的某个节或者某段文字隐藏,那么你可以用这个方法。把下面的代码添加到functions.php的最下面。然后在编辑文章的时候可以使用简码【members_only】【/members_only】(请把【】替换成[]),效果如下:
[members_only]这一段文字是游客登陆后可见[/members_only]

/*
*章节可见限制
*在文章中使用简码添加内容:[members_only]这里的内容只为已登录的用户显示[/members_only]
*/
add_shortcode('members_only','members_only_shortcode');
function members_only_shortcode( $atts, $content = null){
if ( is_user_logged_in() && !empty( $content ) && !is_feed()){
return $content;
}
$redirect = urlencode(get_permalink($post->ID));
return'<div class="alert alert-danger">该资源<a href="http://www.svlik.com/wp-login.php?redirect_to='.$redirect.'" target="_blank" rel="nofollow"><span style="color: #3366ff;">登录</span></a>后才可访问,如果您没有账号,可以先进行<a href="http://www.svlik.com/wp-login.php?action=register"><span style="color: #3366ff;">注册</span></a>。</div>';
}

声明:本文为原创,作者为 Svlik,转载时请保留本声明及附带文章链接:http://www.svlik.com/299.html