如何安全地从MySQL数据库中删除与wp_post表相关的数据?

时间:2014-01-28 作者:user658182

最近,我下载了一个插件,该插件有一个bug,它在wp\\u post表中孤立了它的自定义post类型项目,而不是删除它们。作为wordpress的新手,我并不清楚wp\\U Posteta表是否与该表相关。现在,我在后者中有了$post\\u id的空值条目。(我只是简单地删除了wp\\u post中具有该内容类型的所有内容。)

我假设进行左连接查询可以很容易地找到所有那些wp\\u posttea项目,并删除$post\\u id为NULL的所有内容。但是,我不确定wordpress表之间的关系。如果手动执行此操作,是否需要考虑其他默认表?有人在他们的库中有脚本来处理这样的事情吗?

如果你能推荐一个插件,我也愿意接受。

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

由于您已经删除了表中的所有帖子,这将是一项相当多的手动工作。

下次你这样做的时候,使用wp_delete_post( $postid, $force_delete ); (Codex) 在使用该posttype遍历所有帖子时,因为此函数删除与该帖子相关的所有数据。

$args = array(
    \'posttype\' => \'yourposttype\',
    \'numberposts\' => -1
);
$todelete = get_posts( $args );

foreach( $todelete as $deletethis ) {

    wp_delete_post( $deletethis->ID, true );

}
在您的情况下,必须检查以下表格中的数据(我在这里跳过tableprefix):

在所有情况下,您都必须使用post_id/object_id NULL或posts表中没有条目,然后删除它们。SQL应该非常直截了当。

结束

相关推荐

在wp_database中的哪些位置定义了可用角色?

我上榜是为了测试我在多站点网络上使用的插件的私有beta版。插件作者在其中有添加自定义角色的代码。他们有一个bug,它删除了为用户提供除一个自定义角色之外的任何角色的功能。当我访问时../wp-admin/network/site-users.php, “添加用户”角色下拉列表仅显示此插件添加的一个角色。change role下拉菜单显示所有WP默认角色,以及此插件和其他插件添加的一些额外角色。如果我试图将一个用户更改为这些角色之一,我会得到一个“你不能给用户这个角色”错误页面。我一直在与开发人员讨论这个