之前我用 WordPress 大学提供的代码放在 functions.php 文件一直没生效,都好多年了忘了有这回事,最进在整理代码的时候才发现。本来准备删除了事,但是觉得评论也不少,索性就留着,并修改一下能够在WordPress前台评论中正确显示“删除”和“标识为垃圾”的链接。

WordPress 前台评论添加“删除”和“标识为垃圾”链接 第5张插图

也就是我在原来的基础上进行了修改调整:

  1. 参数调整:edit_comment_link 过滤器的回调函数接受三个参数:$link, $comment_id, 和 $status。
  2. 全局变量使用:确保使用正确的全局变量 $comment 和 $post。
  3. URL 构建:正确构建删除和标识为垃圾的 URL,并使用 esc_url 函数来转义 URL。
  4. 字符串拼接:通过 .= 操作符正确地将新的链接追加到现有链接后面。
  5. 过滤器优先级和参数数量:设置过滤器的优先级为 99,并明确指定接受三个参数。
  6. 权限检查:将 current_user_can('moderate_comments', $post->ID) 改为 current_user_can('administrator'),以确保只有管理员才有权限查看这些链接。

将下面的代码添加到当前主题的 functions.php 文件即可:

function comment_manage_link($link, $comment_id, $status) {
    global $comment, $post;
    if (current_user_can('administrator')) { // 检查是否为管理员
        $delete_url = admin_url("comment.php?action=cdc&c=" . $comment_id);
        $spam_url = admin_url("comment.php?action=cdc&dt=spam&c=" . $comment_id);

        $link .= ' | <a href="' . esc_url($delete_url) . '" title="' . __('删除评论') . '">删除</a>';
        $link .= ' | <a href="' . esc_url($spam_url) . '" title="' . __('标识为垃圾') . '">标识为垃圾</a>';
    }
    return $link;
}
add_filter('edit_comment_link', 'comment_manage_link', 99, 3);