Delete all blogs on multisite

时间:2016-03-03 作者:Brady Pacha

我正在编写一个函数,该函数将删除多站点中的所有博客(主博客除外),每当我调用该函数时,该函数都将失效wpmu_delete_blog 我不知道为什么。

$blogs = wp_get_sites( array(\'limit\' => 0) );
array_shift($blogs); # removes first blog from the list
foreach ( $blogs as $blog ) {
    $blog_id = $blog[\'blog_id\'];
    wpmu_delete_blog( $blog_id, true);
}
实际上,我只需要运行这一次,我正在尝试编写一个php脚本,加载wordpress(成功完成,并将脚本识别为admin)。我还尝试将其添加到我的博客特定插件中,但以同样的方式失败。

我甚至在wpmu\\u delete\\u blog的第一行添加了一个print语句,print语句无法执行,脚本在尝试调用此函数时会终止。

1 个回复
最合适的回答,由SO网友:Brady Pacha 整理而成

我能找到一个合适的工作。因为我删除了所有没有用户交互的博客。我创建了两个mysql查询并运行了它们。第一种方法是删除与给定$blog_id 第二个是从wp_blogs 桌子

$blogs = wp_get_sites( array(\'limit\' => 0) );
array_shift($blogs); # removes first blog from the list
global $wpdb;
foreach ( $blogs as $blog ) {
    $blog_id = $blog[\'blog_id\'];

    $query = "DROP TABLES ";
    $query = "wp_{$blog_id}_commentmeta, ";
    $query = "wp_{$blog_id}_comments, ";
    $query = "wp_{$blog_id}_links, ";
    $query = "wp_{$blog_id}_options, ";
    $query = "wp_{$blog_id}_postmeta, ";
    $query = "wp_{$blog_id}_posts, ";
    $query = "wp_{$blog_id}_term_relationships, ";
    $query = "wp_{$blog_id}_term_taxonomy, ";
    $query = "wp_{$blog_id}_terms, ";

    $wpdb->query( $query );
    $wpdb->delete(\'wp_blogs\', array( \'blog_id\' => $blog_id ), array( \'%d\' ) );
}

相关推荐

WP_COMMENTS表真的很大,正在慢慢加载/wp-admin/dit-Comments.php

我们的wp\\u注释有数百万行。当我们加载时/wp/wp-admin/edit-comments.php 它将超时。看看mysql,这个简单的查询需要很长时间SELECT wp_comments.comment_ID FROM wp_comments WHERE ( ( comment_approved = \'0\' OR comment_approved = \'1\' ) ) AND comment_type IN (\'pingback\', \'trackback\')&