Warning: Undefined array key "night" in /www/wwwroot/dhaomu.com/wp-content/themes/b2/header.php on line 18

2023纯代码实现WordPress文章内容评论回复可见

“WordPress文章内容评论回复可见”这个功能很常见了,许多主题都集成了这个功能,然后WordPress也有相应的插件来实现。但老白博客目前所使用的的document主题并未集成该功能,而老白自己是最不喜欢用插件的。因此接下来就跟大家说一下如何用纯代码实现该功能(踩的坑)

2023纯代码实现WordPress文章内容评论回复可见插图

1.评论可见功能代码

代码来源是一位大佬开发的插件,插件地址:https://gitee.com/fangxiansheng123/fb-reply

然后我做了一点简单的修改,免插件纯代码实现

代码如下(顺便演示功能),加到主题文件的function.php底部:

此处为隐藏内容,评论后查看

①优点

  • 免注册,访客评论也可立马刷新
  • 已注册用户会记录cookie,一直可见

②注意事项

这里有个地方需要注意,原代码点击“评论”后跳转的链接是

https://www.xcbtmw.com/29710.html#respond

就是你该文章的评论区,但是这个锚点(#respond),每个WordPress主题可能是不一样的,我的主题就是(?replytocom)

https://www.xcbtmw.com/29710.html?replytocom

③使用方法

在文章中用下面短代码包裹需要隐藏的内容即可

2023纯代码实现WordPress文章内容评论回复可见插图1

在文本模式和代码模式下均可

2.简单美化修改

①添加短代码到编辑器

同理,添加到function文件

2023纯代码实现WordPress文章内容评论回复可见插图2

// 添加评论回复按钮到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 }

②样式简单修改

这个代码在上面中包含了,大家此处仅看修改后的即可,不用再添加

此处就是css调整为居中显示

    .reply-to-read{
        display: flex;
        align-items: center;
        justify-content: center;

③登录用户免评论可见

(这个功能未在老白博客开启,大家自行测试下)

修改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;
    }
}

④管理员免评论可见

同理,和③类似的

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;
    }
}
温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
未整理

cyberpanel+openlitespeed环境静态文件防盗链设置教程

2023-9-9 12:41:00

未整理

爱奇艺暂停广告去除油猴脚本

2023-9-10 0:00:00

0 条回复 A文章作者 M管理员

Warning: Trying to access array offset on value of type null in /www/wwwroot/dhaomu.com/wp-content/themes/b2/functions.php on line 3914

Warning: Trying to access array offset on value of type null in /www/wwwroot/dhaomu.com/wp-content/themes/b2/functions.php on line 3914
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索