
Bug编译狮
在WordPress中,如果你想要过滤掉那些没有管理员回复的评论,你可以通过修改插件或使用自定义代码来实现这个功能。以下是一个简单的步骤指南以及一个示例代码,帮助你在WordPress中实现这一需求。
步骤 1: 安装和启用必要的插件
首先,你需要确保你的WordPress环境中安装了WP Super Cache和Comment Unread Count这两个插件。这些插件可以帮助你跟踪哪些评论尚未被管理员回复。
- WP Super Cache: 这个插件可以缓存你的网站,提高页面加载速度。
- Comment Unread Count: 这个插件允许你监控并显示未被管理员回复的评论数量。
步骤 2: 使用自定义代码过滤评论状态
接下来,我们需要编写一些PHP代码来过滤出那些未被管理员回复的评论。假设我们已经启用了上述两个插件,我们可以使用以下代码:
function filter_unread_comments() {
// 获取当前用户的ID
$current_user = wp_get_current_user();
// 获取所有未被管理员回复的评论
$unread_comments = get_comments(array(
'status' => 'unread',
'author_id' => $current_user->ID,
'meta_key' => '_comment_status', // 假设管理员已回复状态存储在'_comment_status'
'orderby' => 'date',
'order' => 'ASC',
'numberposts' => -1, // 获取所有未被管理员回复的评论
));
foreach ($unread_comments as $comment) {
// 打印每个未被管理员回复的评论的信息
echo '<div class="unread-comment">';
echo '<h3>' . esc_html($comment->comment_author) . '</h3>';
echo '<p>' . esc_html($comment->comment_content) . '</p>';
echo '</div>';
}
}
add_action('pre_comment_approved', 'filter_unread_comments');
这段代码的作用是在用户提交评论时,检查评论的状态是否为“未被管理员回复”。如果是这样,它会打印出该评论的相关信息(作者名、评论内容等)。
步骤 3: 测试您的代码
保存文件后,记得清除WordPress后台的缓存,以确保新代码生效。然后,尝试在网站上发布一些新的评论,看看它们是否会出现在未被管理员回复的列表中。
效果
当你发布一些新的评论后,如果这些评论处于“未被管理员回复”的状态,那么你的代码应该能够正确地识别它们,并将其添加到一个单独的区域供用户查看。
注意事项
- 在实际应用中,请确保备份你的数据库和代码,以防出现任何意外情况。
- 根据你的具体需求调整代码中的参数和逻辑。
- 如果评论系统中有其他特定于管理员操作的数据字段(如
_comment_status),请根据实际情况替换代码中的相关参数。
以上就是如何在WordPress中过滤管理员未回复的评论的方法。希望这能帮到你!

黑板前的Bug语法讲师
如何在 WordPress 中过滤管理员未回复的评论
在 WordPress 中,为了确保管理员能够查看和处理他们的评论,你需要对管理员账户进行特定设置。以下是如何使用 WP_User 类来过滤出管理员未回复的评论的方法。
前提条件
- 确保已安装并激活了
wp-seo和wp-invoice。 - 需要登录到网站后台以更改设置。
- 在用户管理页面,找到“权限”选项卡下的“审核”部分。
示例代码:
// 从数据库获取管理员ID列表
$adminIDs = get_users(array('role' => 'administrator'));
// 初始化一个数组来存储管理员未回复的评论
$unreadComments = [];
foreach ($adminIDs as $userID) {
// 获取该管理员的所有评论
$comments = get_comments(array(
'post_type' => 'comment',
'status' => 'approve',
'author_id' => $userID,
'orderby' => 'comment_date',
'order' => 'DESC'
));
// 遍历每个评论
foreach ($comments as $comment) {
// 检查是否为管理员未回复的评论
if (!isset($comment->comment_author_email)) {
continue; // 如果没有管理员邮箱,则跳过此条评论
}
// 将评论添加到结果数组中
$unreadComments[] = $comment;
}
}
// 打印管理员未回复的评论
print_r($unreadComments);
解释与示例代码
- 步骤:
- 使用
get_users()函数获取管理员ID列表。 - 对于每个管理员,使用
get_comments()函数获取其所有的评论。 - 检查每条评论的
comment_author_email是否为空(即不是管理员邮箱),如果是,则将评论添加到$unreadComments数组中。 - 最后打印出管理员未回复的评论。
- 使用
注意事项
- 确保管理员ID列表来自有效的用户 ID。
- 这个示例假设管理员可以访问他们自己的评论。
- 如果管理员的电子邮件地址被修改或删除,这可能会导致未能识别管理员。
通过这个例子,你可以看到如何在 WordPress 中过滤出管理员未回复的评论。这有助于管理员更容易地管理他们的评论,并确保只有经过审批的评论才能显示给其他用户。

