“WordPress文章内容评论回复可见”这个功能很常见了,许多主题都集成了这个功能,然后WordPress也有相应的插件来实现。但老白博客目前所使用的的document主题并未集成该功能,而老白自己是最不喜欢用插件的。因此接下来就跟大家说一下如何用纯代码实现该功能(踩的坑)
[h2]1.评论可见功能代码[/h2]
代码来源是一位大佬开发的插件,插件地址:https://gitee.com/fangxiansheng123/fb-reply
然后我做了一点简单的修改,免插件纯代码实现
代码如下(顺便演示功能),加到主题文件的function.php底部:
[h3]①优点[/h3]
- 免注册,访客评论也可立马刷新
- 已注册用户会记录cookie,一直可见
[h3]②注意事项[/h3]
这里有个地方需要注意,原代码点击“评论”后跳转的链接是
就是你该文章的评论区,但是这个锚点(#respond),每个WordPress主题可能是不一样的,我的主题就是(?replytocom)
[h3]③使用方法[/h3]
在文章中用下面短代码包裹需要隐藏的内容即可
在文本模式和代码模式下均可
[h2]2.简单美化修改[/h2]
[h3]①添加短代码到编辑器[/h3]
同理,添加到function文件
// 添加评论回复按钮到HTML编辑器-https://www.xcbtmw.com/29710.html
add_action('after_wp_tiny_mce', 'add_custom_button_mce');
function add_custom_button_mce($mce_settings) {
?>
<script type="text/javascript">
QTags.addButton('reply', 'reply', '
');
</script>
<?php
}
[h3]②样式简单修改[/h3]
这个代码在上面中包含了,大家此处仅看修改后的即可,不用再添加
此处就是css调整为居中显示
.reply-to-read{
display: flex;
align-items: center;
justify-content: center;
[h3]③登录用户免评论可见[/h3]
(这个功能未在老白博客开启,大家自行测试下)
修改auto_reply()
函数,在函数中判断是否有登录用户,并设置一个名为fbreply
的cookie。
function auto_reply($comment_id, $comment_object) {
if (is_user_logged_in()) {
setcookie("fbreply", "1");
}
}
修改reply_to_read()
函数,在函数中先检查登录用户是否已经设置了fbreply
的cookie,如果是则直接返回内容,否则返回隐藏提示信息
function reply_to_read($atts, $content=null) {
extract(shortcode_atts(array("notice" => '<div class="reply-to-read"><p><strong>此处为隐藏内容,您需要<a href="' . wp_login_url() . '">登录</a>后才能查看</strong></p></div>'), $atts));
if (is_user_logged_in() || $_COOKIE['fbreply'] == "1") {
return do_shortcode($content);
} else {
return $notice;
}
}
[h3]④管理员免评论可见[/h3]
同理,和③类似的
function auto_reply($comment_id, $comment_object) {
if (is_user_logged_in()) {
setcookie("fbreply", "1");
}
}
修改reply_to_read()
函数
function reply_to_read($atts, $content=null) {
extract(shortcode_atts(array("notice" => '<div class="reply-to-read"><p><strong>此处为隐藏内容,您需要<a href="' . wp_login_url() . '">登录</a>后才能查看</strong></p></div>'), $atts));
if (is_user_logged_in() || $_COOKIE['fbreply'] == "1") {
return do_shortcode($content);
} else {
return $notice;
}
}
本文作者为test,转载请注明。
测试看看
太棒了,谢谢楼主的分享
@xuerff都是基于大佬的插件<img class='comments-emoji' src='https://www.xcbtmw.com/wp-content/themes/theme-document-master/assets/smilies/tushe.png' title='emoji'/>,适配问题就关注评论区锚点即可<img class='comments-emoji' src='https://www.xcbtmw.com/wp-content/themes/theme-document-master/assets/smilies/huaji2.png' title='emoji'/>
看看