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

也就是我在原来的基础上进行了修改调整:
- 参数调整:
edit_comment_link
过滤器的回调函数接受三个参数:$link
,$comment_id
, 和$status
。 - 全局变量使用:确保使用正确的全局变量
$comment
和$post
。 - URL 构建:正确构建删除和标识为垃圾的 URL,并使用
esc_url
函数来转义 URL。 - 字符串拼接:通过
.=
操作符正确地将新的链接追加到现有链接后面。 - 过滤器优先级和参数数量:设置过滤器的优先级为 99,并明确指定接受三个参数。
- 权限检查:将 current_user_can('moderate_comments', $post->ID) 改为 current_user_can('administrator'),以确保只有管理员才有权限查看这些链接。
功能代码
将下面的代码添加到当前主题的 functions.php 文件即可:
/**
* WordPress 前台评论添加“删除”和“标识为垃圾”链接(仅限管理员)
* https://wpexp.cn/731.html
*/
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);
评论前必须登录!
注册