我试图阻止在WordPress多站点安装中删除博客。已经有一个插件可以做到这一点,但它使用wp_die()
作为解决方案,在我的场景中不起作用。
在wp admin/network中选择删除多个博客时,我希望WordPress继续工作,不要在尝试删除循环中的第一个博客时死掉。
我曾尝试将其作为一个mu插件来解决:
if(!$argv[1]) {
add_action( \'delete_blog\', \'prevent_blog_delete_wpse\', 1, 2 );
function prevent_blog_delete_wpse($blog_id, $drop = FALSE)
{
global $wpdb;
$wpdb->query("update wp_blogs set deleted = 1 where blog_id = \'".$blog_id."\'");
return FALSE;
}
}
因此,如果通过浏览器调用删除,并且
not CLI,它只会将日志标记为已删除。遗憾的是,这不起作用。我还尝试将优先级从1更改为99,但仍然不起作用。
这个解决方案的原因是,我有一个单独的cronjob来执行实际的删除,但首先要对sql表和博客进行tarball。dir文件,以防需要恢复。
这当然可以通过黑客来修复wpmu_delete_blog()
核心代码函数,但我不希望这样做,因为它将在WordPress的下一次更新中中断。