在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);
我从here
找到了这个如此大量的帖子可以一次删除5万个帖子删除操作。