php - 如何从 WordPress 数据库中删除大量帖子
问题描述
在 WordPress woocommerce 网站中,我有自定义 post_type klaviyo_shop_cart
= =1137717 的帖子数量,我不需要它们,所以我决定从我的数据库中删除它们。为此,我尝试了一些插件,但由于限制,我未能删除它们。
我的 PHP 方法只能处理 3000 个删除后我无法增加这些数字。如果我增加它会显示 500 错误。
<?php
$number = 3000 ;
$mycustomposts = get_posts(
array(
'post_type' => 'klaviyo_shop_cart',
'numberposts' => $number
)
);
foreach( $mycustomposts as $mypost ) {
// Delete's each post.
wp_delete_post( $mypost->ID, true);
// Set to False if you want to send them to Trash.
}
echo '<h3 style=:"color:red;"> DELETED!</h3>' . $number ;
?>
它的速度非常慢,一次删除 3000 个帖子。所以我想尝试使用下面的 sql 查询来删除帖子。我知道我不能1137717
一次删除帖子的数量,所以我需要一个更好的解决方案。我的问题有没有办法50000
在单个查询中删除?
DELETE FROM wp_posts WHERE post_type='klaviyo_shop_cart';
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT id FROM wp_posts);
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT id FROM wp_posts);
我从这里找到了这个
如此庞大的帖子数量可以一次删除50000个帖子的批量删除操作。
解决方案
推荐阅读
- javascript - vuejs - 提交 axios 表单后显示警报和重定向
- django-models - 如何在多字段中使用“包含”?
- c++ - 将参数传递给 FindNextFileA 不起作用?
- scala - Scala 谓词组合
- python - PySimpleGUI 中 InputText 的 Read() 方法仅读取具有可变布局的最后一行
- python-3.x - Scrapy 使用转义字符更改 multipart/form-data 中的某些字符
- php - 标头位置不起作用inventory_id 有空错误
- sql-server - SQL Server:varchar 的标识和自动增量
- go - 模式不匹配任何文件
- php - 如何在同一页面中有 2 个不同的元数据到 2 个图像?