WordPress主题YIA默认是没有文章部分内容评论可见功能的,若想要该功能,需要另外购买TB-Member会员交易插件才行。不过我们可以自行添加代码实现评论可见功能,具体操作步骤如下:
1、登录WordPress后台 >> YIA主题设置 >> 自定义代码 >> 在“CSS代码”中添加以下CSS代码(或将代码添加到YIA主题的style.css文件中)。
.reply-read{margin:15px 0;border-radius:2px;border:1px solid #ddd}
.reply-read:after{content: "";display: block;clear: both;}
.reply-ts{float:left;width:75%}
.read-sm,.read-smx{padding:5px 15px;margin-bottom:-1px}
.read-sm{border-bottom:1px solid #ddd}
.read-pl{float:right;width:25%;height:74px;line-height:74px;text-align:center;border-left:1px solid #ddd}
.read-pl a{display:block;color:#555!important}
.read-pl a:hover{background:#26aae1;color:#fff!important}
2、打开yia文件夹内的functions.php文件,添加以下评论可见代码:
// 文章部分内容评论可见
// https://boke112.com/post/12157.html
function reply_read($atts, $content=null) {
extract(shortcode_atts(array("notice" => '
<div class="reply-read">
<div class="reply-ts">
<div class="read-sm">此处为隐藏的内容!</div>
<div class="read-smx">发表评论并刷新,才能查看</div>
</div>
<div class="read-pl"><a href="#respond">发表评论</a></div>
</div>'), $atts));
$email = null;
$user_ID = (int) wp_get_current_user()->ID;
if ($user_ID > 0) {
$email = get_userdata($user_ID)->user_email;
if ( current_user_can('level_10') ) {
return '<div class="secret-password">'.do_shortcode( $content ).'</div>';
}
} 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('<div class="secret-password">'.do_shortcode( $content ).'</div>');
} else {
return $notice;
}
}
add_shortcode('reply', 'reply_read');
add_action('after_wp_tiny_mce', 'boke_after_wp_tiny_mce');
function boke_after_wp_tiny_mce($mce_settings) {
?>
<script type="text/javascript">
QTags.addButton( 'ygj_reply', '评论可见', '[reply]', '[/reply]');
</script>
<?php }
特别说明:如果你使用的YIA主题已经参考『YIA主题如何实现文章部分内容登录可见功能?』一文添加了登录可见功能,那么上述代码第38~44行代码不需要添加,只需要将42行代码添加到登录可见</script>代码的前面即可。
3、以后发布评论可见内容时,只需要进入WordPress后台正常编辑文章,点击切换到“文本”,将光标定位到需要隐藏的内容开头并点击【评论可见】按钮,然后将光标定位到需要隐藏的内容结尾并编辑【/评论可见】按钮。发布文章后还没有评论的时候看到的效果如下图所示:
点击【发表评论】按钮并发布评论后,刷新该页面即可看到隐藏的内容了(PS:若评论处于审核状态,则还是无法看到隐藏内容,需要评论内容审核通过的情况下才可以看到)。
如果想要修改这个评论可见的样式和内容,大家可自行修改第1步的CSS代码和第2步的代码。