如何从WordPress数据库中删除大量帖子

时间:2018-07-27 18:45:25

标签: php mysql 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);

我从here

找到了这个

如此大量的帖子可以一次删除5万个帖子删除操作。

0 个答案:

没有答案