注意WordPress中钩子死循环

06月/15日/WordPress/浏览 145

WordPress中的钩子,使用不当,有可能造成死循环。


原因很简单,就是在【钩子】中执行了【触发钩子】的代码。


例如,下面的代码:


add_action('save_post', 'zhuige_update_post');

function zhuige_update_post($post_id)
{
    $post = ['ID' => $post_id];

    //假装中间好多修改文章的代码……

    wp_update_post($post);
}


如何解决这个问题呢?


add_action('save_post', 'zhuige_update_post');

function zhuige_update_post($post_id)
{
    $post = ['ID' => $post_id];

    //假装中间好多修改文章的代码……

    //先解除钩子
    remove_action('save_post', 'zhuige_update_post');

    wp_update_post($post);

    //再重新绑定钩子
    add_action('save_post', 'zhuige_update_post');
}


发表评论

暂无评论,抢个沙发...

客服 工单