当一个多站点博客被删除时,可以运行插件代码吗?

时间:2012-02-08 作者:Dave Carlile

我有一个插件,可以在激活或将新博客添加到网络时创建表。当一个博客被删除时,我希望能够删除该博客的那些表。是否有可用的挂钩来执行此操作?

我想这可能与wpmu\\u new\\u blog类似,但我找不到一个等效的删除方法。

2 个回复
最合适的回答,由SO网友:nothingtosee 整理而成

功能wpmu_delete_blog 在里面/wp-admin/includes/ms.php 有一个叫做delete_blog. 此挂钩传递变量$blog_id

您可以尝试插入该挂钩,尽管它是在函数的开头执行的。

SO网友:Dave Carlile

如果您只是删除表,这可以说是更好的方法,但nothingtosee的答案也是有效的,如果您需要做除删除表以外的其他事情,这将是必需的方法。

add_filter("wpmu_drop_tables", "DropTablesForBlog");


function DropTablesForBlog($tables)
{
  global $wpdb;

  $tables[] = $wpdb->prefix . "my_plugin_table_1";
  $tables[] = $wpdb->prefix . "my_plugin_table_2";
  $tables[] = $wpdb->prefix . "my_plugin_table_2";

  return $tables;
}

结束

相关推荐

Multisite / Network - Stable?

我的服务器上运行着大约15个WordPress站点,我正在考虑在多站点区域下重新创建这些站点,以避免每次安装都需要更新。我的问题——一年前,我听到一些评论说multisite还没有完全“准备好”,或者可能还有一些怪癖。我真的需要这些坚如磐石,我应该担心吗?