You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress评论自动回复功能求助:书店评论致谢开发遇阻

修复WordPress评论自动致谢功能的问题

你的代码存在几个关键问题导致功能失效,以下是具体修正方案:

核心问题分析

  • add_action参数不匹配:comment_post钩子默认传递2个参数,但你的函数声明了3个,且未在add_action中指定参数数量为3,导致$commentdata无法正确获取
  • comment_parent赋值错误:你传入的是字符串'$comm',实际需要传入父评论的ID,即$comment_ID或$comm->comment_ID
  • comment_post_ID写死固定值:所有回复都会发布到ID为2978的文章,应该动态获取当前评论所属的文章ID
  • 评论内容固定用户名:硬编码"Andy"无法适配不同评论者,应动态获取评论者名称
  • 可选:未启用审核判断,若需仅回复已审核评论,应取消相关注释

修正后的代码

add_action( 'comment_post', 'author_new_comment', 10, 3 ); // 指定传递3个参数
function author_new_comment( $comment_ID, $comment_approved, $commentdata ){
    // 仅回复已审核的评论,不需要可注释此行
    if( $comment_approved == 0 )
        return;

    $comm = get_comment( $comment_ID );
    // 防止自动回复触发循环,避免回复自己的评论
    if ( $comm->comment_author === 'Admin' ) {
        return;
    }

    $reply_data = [
        'comment_post_ID'      => $comm->comment_post_ID, // 动态获取当前评论所属文章ID
        'comment_author'       => 'Admin',
        'comment_author_email' => 'admin@example.com',
        'comment_author_url'   => 'http://example.com',
        'comment_content'      => sprintf( '%s, thanks for your review of my book', $comm->comment_author ), // 动态替换评论者名称
        'comment_type'         => 'comment',
        'comment_parent'       => $comment_ID, // 直接使用父评论ID
        'user_ID'              => 1, // 替换为你的实际管理员ID,默认管理员ID为1
    ];
    
    wp_new_comment( $reply_data );
}

额外说明

  • 添加了循环防护判断:避免自动回复被再次触发,造成无限循环
  • 动态获取评论者名称和文章ID,适配全站所有文章的评论
  • 请将admin@example.com、http://example.com和user_ID的值替换为你的实际信息

内容的提问来源于stack exchange,提问作者Andrey Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:45:37