[转]WordPress回复可见功能如何实现?

说到隐藏部分文章内容,这种做法常见于论坛,在wordpress博客程序中用得其实并不广泛。当然,这也与两者的用户群体以及定位不同;论坛经常设置部分内容隐藏、内容登陆、回复可见等限制,主要是为了吸引用户注册,而对于wordpress博主而言,这个目的并不是很强烈,所以对这个功能的需求也相对小很多。但是,随着wordpress的盛行,使用wordpress建站的类型以及用途越来越多元化,而wordpress本帖隐藏的内容需要回复才可以浏览等这些功能也能起到一定的作用,下面就分享下2种简单的方法来实现这个功能!

wordpress登陆可见

本文隐藏内容 登陆 后才可以浏览

一、通过修改代码实现

个人觉得wordpress插件来实现是很简单方法,但是大家都知道wordpress插件安装过多的话,不仅会影响网站的整体访问速度,同时网络上的免费wordpress插件安全性也有待考量,如果你不患有代码恐惧症,还是自己倒腾吧,其实操作起来也很简单!只需要将以下隐藏内容回复可见代码加入到当前使用的主题的functions.php文件里即可。

//文章内容回复可见

function reply_to_read($atts, $content=null) {

extract(shortcode_atts(array(“notice” => ‘<center><p class=”reply-to-read”><b><span style=”color: #ff0000;”><特别提醒:因内容只分享给有品位的人,待您</span></b><a href=”#respond” title=”回复本文”><b>回复本文</b></a><b><span style=”color: #ff0000;”>后刷新即可查看,请谅解!>  </span></b></p><center>’), $atts));

$email = null;

$user_ID = (int) wp_get_current_user()->ID;

if ($user_ID > 0) {

$email = get_userdata($user_ID)->user_email;

//对博主直接显示内容

$admin_email = “511165019@qq.com”; //<span style=”color: #0000ff;”>管理员Email</span>

if ($email == $admin_email) {

return $content;

}

} else if (isset($_COOKIE[‘comment_author_email_’ . COOKIEHASH])) {

$email = str_replace(‘%40’, ‘@’, $_COOKIE[‘comment_author_email_’ . COOKIEHASH]);

} else {

return $notice;

}

if (empty($email)) {

return $notice;

}

global $wpdb;

$post_id = get_the_ID();

$query = “SELECT `comment_ID` FROM {$wpdb->comments} WHERE `comment_post_ID`={$post_id} and `comment_approved`=’1′ and `comment_author_email`='{$email}’ LIMIT 1”;

if ($wpdb->get_results($query)) {

return do_shortcode($content);

} else {

return $notice;

}

}

add_shortcode(‘reply’, ‘reply_to_read’);

PS:(1)请将管理员的E-mail改成自己管理账户的E-mail,这样你可以不用回复就可见。(2)另外,目前BUG是,使用多说等评论插件无效,只支持主题内置留言。

二、通过wordpress插件实现

(1)效果预览

本文隐藏内容 登陆 后才可以浏览

(2)安装方法:

1. 直接在wordpress后台插件搜索安装“login to view all”或者去wordpress官网下载插件,解压缩,你将会看到一个文件夹login-to-view-all,然后将其放置到插件目录下,插件目录通常是 /wp-content/plugins/
2. 在后台对应的插件管理页激活该插件Login to view all
4. 完成

(3)使用说明:

1. 在WordPress后台编辑文章的时候,切换到HTML模式,选中你要隐藏的内容,点击按钮 loginview 即可用

<!–loginview start–> 和 <!–loginview end–>

将隐藏内容括起来;使用这个标签的好处是,你停用本插件后,该标签不会被显示出来。

2. 这样未登录的用户浏览文章的时候,将无法阅读隐藏的内容。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

相关