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

发布WordPress文章后立即更新内容时遇超时问题求助

解决WordPress发布文章后更新超时的问题

你的代码出现超时是因为无限循环触发钩子:调用wp_update_post()时,会再次触发publish_post钩子,导致你的updatemypost函数反复执行,最终耗尽服务器资源超时。

修复方案

要解决这个问题,需要做两件事:

  • 仅在新创建文章时执行更新(通过$update参数判断)
  • 执行更新前临时移除钩子,避免循环触发

修改后的代码如下:

function updatemypost( $post_id, $post, $update ) {
    // 只处理新发布的文章,跳过已存在文章的更新操作
    if ( $update ) {
        return;
    }

    // 临时移除当前钩子,防止wp_update_post再次触发循环
    remove_action( 'publish_post', 'updatemypost', 10 );

    $mydata = array(
        'ID' => $post_id,
        'post_content' => 'New Data..',
    );
     
    wp_update_post( $mydata );

    // 重新添加钩子,不影响后续操作
    add_action( 'publish_post', 'updatemypost', 10, 3 );
}
add_action( 'publish_post', 'updatemypost', 10, 3 );

额外说明

  • $update参数为false时,代表这是一篇新创建的文章,符合你"文章创建后添加内容"的需求
  • 临时移除钩子能彻底避免wp_update_post触发的循环调用,解决超时问题

内容的提问来源于stack exchange,提问作者My Programming Hub

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:36:34