返回列表 发布新帖
查看: 131|回复: 0

[代码技巧] 为子比主题评论区增加私密评论可见功能

[复制链接]
SunJu_FaceMall
#网站认证# 飞流网创始人  网站认证

飞流网创始人

社区贡献

102

主题

173

回帖

1万

积分

等级头衔
Icon组别 : 管理员
Icon等级 :

积分成就
   钻石 : 49 颗
   贡献 : 364 点
   金币 : 9 枚
Icon在线时间 : 1136 小时
Icon注册时间 : 2024-11-22
Icon最后登录 : 2025-9-19

荣誉勋章

会员LV.1会员LV.2会员LV.3会员LV.4会员LV.5会员LV.6会员LV.7会员LV.8会员LV.9会员LV.10

资源无需等待,交易就趁现在,全面资源整合网络大咖云集,让你轻松玩转互联网!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
以前看别人发过私密评论,又是js又是各种修改文件,觉得很麻烦,后面初一写了一个不需要js也不需要修改主题文件的版本,很久以前就写了,现在抄给大家吧
演示效果
1000221399.webp 1000221400.webp 1000221401.webp
完美符合子比主题代码写法,同时引用了子比主题自带的UI样式
代码放在子比主题目录下的func.php即可,如果没有这个文件则创建一个,第一行必须是<?php
不建议放functions.php主题更新会导致代码丢失
// 私密评论显示逻辑
  • function zib_private_message_hook($comment_content, $comment) {
  •     $comment_ID = $comment->comment_ID;
  •     $is_private = get_comment_meta($comment_ID, '_private', true);
  •     $email = $comment->comment_author_email;
  •     $current_user = wp_get_current_user();
  •    
  •     // HTML for private comment notification
  •     $html = '<div class="hidden-box" reply-show="true" reload-hash="#hidden-box-comment"><a class="hidden-text"><i class="fa fa-exclamation-circle mr10"></i>此评论为私密评论,仅双方可见.</a></div>';

  •     if ($is_private) {
  •         // 安全判断:优先使用 user_id 比对
  •         $is_comment_author = false;
  •         $is_post_author = false;
  •         $is_admin = current_user_can('manage_options');

  •         if ($current_user && $current_user->ID) {
  •             $is_comment_author = ($current_user->ID == $comment->user_id);
  •             $is_post_author = ($current_user->ID == get_post_field('post_author', $comment->comment_post_ID));
  •         }

  •         // 仅允许:管理员 / 评论作者 / 文章作者 查看私密评论内容
  •         if ($is_admin || $is_comment_author || $is_post_author) {
  •             return '<div class="hidden-box show" id="hidden-box-comment"><div class="hidden-text">私密评论内容</div>' . $comment_content . '</div>';
  •         }

  •         return $html;
  •     }

  •     return $comment_content;
  • }
  • add_filter('get_comment_text', 'zib_private_message_hook', 10, 2);

  • // 添加私密按钮到评论操作列表
  • function zib_comments_action_add_private($lists, $comment) {
  •     $current_user = wp_get_current_user();
  •     $user_id = get_current_user_id();

  •     // 仅允许管理员或评论作者看到“设为私密”选项
  •     if (is_user_logged_in() && (is_super_admin($user_id) || $current_user->ID == $comment->user_id)) {

  •         $comment_ID = $comment->comment_ID;
  •         $is_private = get_comment_meta($comment_ID, '_private', true);
  •         $private_text = empty($is_private) ? '设为私密' : '取消私密';
  •         $action = empty($is_private) ? 'set_private' : 'del_private';
  •         $private_but = '<a class="comment-private-link wp-ajax-submit" form-action="' . esc_attr($action) . '" form-data="' . esc_attr(json_encode(['id' => $comment_ID])) . '" href="javascript:;"><i class="fa fa-user-secret mr10" aria-hidden="true"></i>' . $private_text . '</a>';

  •         $lists = '<li>' . $private_but . '</li>' . $lists;
  •     }

  •     return $lists;
  • }
  • add_filter('comments_action_lists', 'zib_comments_action_add_private', 99, 2);

  • // 处理更新评论私密状态的 AJAX 请求
  • function zib_private_comment_action() {
  •     $response = ['reload' => true];

  •     if (!isset($_POST['action']) || !$_POST['action']) {
  •         zib_send_json_error(['msg' => '无效的操作类型'] + $response);
  •     }

  •     if (!isset($_POST['id']) || !$_POST['id']) {
  •         zib_send_json_error(['msg' => '无效的评论ID'] + $response);
  •     }

  •     $comment_id = intval($_POST['id']);
  •     $action = sanitize_text_field($_POST['action']);
  •     $comment = get_comment($comment_id);
  •     $post_author_id = get_post_field('post_author', $comment->comment_post_ID);

  •     $current_user = wp_get_current_user();

  •     // 用 user_id 判断评论作者
  •     if (!$comment_id || !$current_user || !($current_user->ID == $comment->user_id || current_user_can('manage_options'))) {
  •         zib_send_json_error(['msg' => '权限不足或无效的评论ID'] + $response);
  •     }

  •     if ($action === 'set_private') {
  •         update_comment_meta($comment_id, '_private', 'true');
  •         zib_send_json_success(['msg' => '评论已设为私密'] + $response);
  •     } elseif ($action === 'del_private') {
  •         delete_comment_meta($comment_id, '_private');
  •         zib_send_json_success(['msg' => '评论已公开'] + $response);
  •     } else {
  •         zib_send_json_error(['msg' => '无效的操作类型'] + $response);
  •     }
  • }
  • add_action('wp_ajax_set_private', 'zib_private_comment_action');
  • add_action('wp_ajax_del_private', 'zib_private_comment_action');
  • 路虽远,行则将至;事虽难,做则必成。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    飞流广播+ 发布

    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    09-11 11:40
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    09-02 09:17
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    08-27 08:56
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    08-20 15:12
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    08-03 10:22
    系统消息:柒沐已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
    06-30 08:57
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    06-18 09:14
    系统消息:清风网络已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
    04-11 09:40
    系统消息:清风网络已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    04-10 09:31
    系统消息:IXM77777已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    04-09 13:44
    系统消息:清风网络已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    04-09 09:22
    系统消息:柒沐已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
    04-09 08:52
    系统消息:清风网络已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    04-08 09:24
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    04-07 09:02
    系统消息:柒沐已经连续答对10道难题,逆天学霸谁与争锋?!#每日答题#
    02-27 09:35
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    02-26 09:06
    系统消息:柒沐已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    02-25 08:49
    系统消息:飞流安卓客户端APP已上线,请在QQ群(123129)群文件内获取下载。
    02-21 02:22
    系统消息:四哥已经连续答对3道难题,逆天学霸谁与争锋?!#每日答题#
    12-14 12:55
    01-24 12:40
    站内通告

    提供资源交易、信息共享、靓号交流、技术变现、学习问答、兴趣娱乐等全面服务。

    1.丰富功能系统,扩展社区特色玩法,打造最好的互联网聚集圈子。

    2.准确信息真实交易,安全快捷又方便,让虚拟交易面对面。

    3. 天上不会掉馅饼,话术骗术迷人心,切勿脱离平台线下交易,被骗与平台无关!

    4. 欺诈骗钱,违规违法将视情受到警告&禁言&封号甚至检举至👮🏻‍♀️处理!

    官方Q群:123129钉推群:BAYR2383 站长QQ:3220000000

    投诉/建议/商务合作联系

    fl@fllt.cn

    严禁私下交易,被骗与本站无关。
    违反交易细则,取证立查严惩。
    • 钉钉新帖推送群
    • 官方交流QQ群
    • 站长唯一微信号

    👮曝光Ta|🧿小黑屋|📴手机页|飞流网 ( 渝ICP备2025054677号-1|电信增值许可 渝B2-20250789 )|网站地图

    GMT+8, 2025-9-19 02:51 , Processed in 0.082758 second(s), 72 queries, MemCached On , Gzip On.

    Based on XJ-TX X3.5 Licensed

    飞流论坛 HanAnalytics icp Astro vhAstro-Theme

    关灯 在本版发帖
    扫一扫添加微信客服
    QQ客服返回顶部
    快速回复 返回顶部 返回列表