我还没有足够的声誉发表评论,所以我要补充一个答案,尽管斯蒂芬的答案很好,也很正确。当您想设置操作的优先级时,它只是不处理实例。
如果在添加操作时设置优先级,但在删除操作时不指定优先级,则仍会得到一个无限循环。
add_action(\'save_post\', \'wpse51363_save_post\', 25 );
//处理此问题的方法错误-导致无限循环
remove_action(\'save_post\', \'wpse51363_save_post\');
wp_update_post(array(\'ID\' => $post_id, \'post_status\' => \'private\'));
add_action(\'save_post\', \'wpse51363_save_post\');
//正确的处理方法-只执行一次
remove_action(\'save_post\', \'wpse51363_save_post\', 25 );
wp_update_post(array(\'ID\' => $post_id, \'post_status\' => \'private\'));
add_action(\'save_post\', \'wpse51363_save_post\', 25 );