删除wordpress网站中超过2年的帖子

时间:2017-10-06 05:04:17

标签: php wordpress

我想在我的WordPress网站上以编程方式删除所有超过两年的帖子。有大约37000个帖子。需要帮助才能批量删除它。怎么可能。?什么是最简单的删除方式。?

4 个答案:

答案 0 :(得分:1)

直接批量方法可能是说一些原始SQL(UIView),但除非你花时间学习WordPress内部,否则我不会建议这条路线。相反 - 像许多任务WordPress一样 - 寻找一个插件。考虑this search,其中Bulk Delete为最佳选项。

事实上,批量删除是我们在办公室使用的插件,只是出现这种情况。

祝你好运!

答案 1 :(得分:1)

运行此sql查询

DELETE FROM `wp_posts` WHERE YEAR(CURDATE()) - YEAR(`post_date`) >= 2;

答案 2 :(得分:1)

尝试使用此代码..请阅读我在代码中的注释以获得更多理解。函数将进入你的functions.php

function get_delete_old_post() {
    // WP_Query arguments
    $args = array(
        'fields'         => 'ids', // Only get post ID's to improve performance
        'post_type'      => array( 'post' ), //post type if you are using default than it will be post
        'posts_per_page' => '-1',//fetch all posts,
        'date_query'     => array(
                                    'column'  => 'post_date',
                                    'before'   => '-2 years'
                                )//date query for before 2 years you can set date as well here 
        );

    // The Query
    $query = new WP_Query( $args );

    // The Loop
    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            //delete post code
            //wp_trash_post( get_the_ID() );  use this function if you have custom post type
            wp_delete_post(get_the_ID(),true); //use this function if you are working with default posts
        }    
    } else {
        // no posts found
        return false;

    }
    die();
    // Restore original Post Data
    wp_reset_postdata();

}

add_action('init','get_delete_old_post');

答案 3 :(得分:0)

您可能会喜欢这个插件(我写的)《自动修剪帖子》,它会根据分类法+年龄删除2年后的帖子。 https://wordpress.org/plugins/auto-prune-posts/

当您只是“从...删除”时,您将至少在postmeta表中得到孤立的数据。我想你不想那样。