![图片[1]- 子比主题添加私密评论](https://www.dh139.cn/wp-content/uploads/2025/11/1-6.png)
使用方法:
将下面的代码放入 wp-content/themes/zibll/func.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);
//使用 comment_reply_link 钩子(适用于回复链接区域)
function zib_add_private_button_to_reply_link($link, $args, $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" data-toggle="tooltip" data-original-title="'. (empty($is_private) ? '设为私密评论仅双方可见' : '取消私密评论为公开评论').'" form-action="' . esc_attr($action) . '" form-data="' . esc_attr(json_encode(['id' => $comment_ID])) . '" href="javascript:;">' . $private_text . '</a>';
// 在回复链接后面添加私密按钮
return $link . ' ' . $private_but;
}
return $link;
}
add_filter('comment_reply_link', 'zib_add_private_button_to_reply_link', 10, 3);
// 处理更新评论私密状态的 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');
© 版权声明
点点赞赏,手留余香~
还没有人给TA充电
给TA充电
声明
花猪使用须知
- 1本网站内容仅供个人学习、研究和欣赏,未经授权禁止用于任何商业用途。
- 2网站中的代码示例仅用于教育目的,使用时请遵循相关开源协议和授权规定。
- 3转载或引用本站内容请注明出处,尊重原创,共同维护良好的创作环境。
- 4网站评论区欢迎理性讨论,请勿发表违反法律法规的言论,共建和谐社区。
- 5如有内容侵犯您的权益,请通过博客联系方式告知,将立即核实并处理。
- 6使用本站资源时产生的任何问题与后果需自行承担,请谨慎操作。
THE END
喜欢就支持一下吧
相关推荐













暂无评论内容