发布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
相关产品推荐
相关产品推荐

