2017-10-06 77 views
-1

我想删除我的WordPress网站上所有超过两年的以编程方式发布的帖子。有大约37000个职位。需要帮助批量删除它。怎么可能。?什么是最容易删除的方法?在wordpress站点中删除超过2年的帖子

+0

使用SQL查询。您可以直接使用'mysql'或PHPMyAdmin在数据库上运行它,或者您可以使用'WP_Query'编写一些PHP代码。 –

+0

您尝试过什么,以及您遇到了哪些问题? – AZinkey

+0

我还没有尝试过任何东西。目前,我正在手动执行此操作。谢谢 –

回答

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'); 
1

直接批量方法可能是说一些原始SQL(DELETE FROM ...),但除非您花时间学习WordPress内部,否则我不会建议此路线。相反,如同许多WordPress任务一样,寻找一个插件。考虑this search,其中Bulk Delete作为顶级选项。

实际上,批量删除是我们在办公室使用的插件,仅用于这种情况。

祝你好运!

1

运行该SQL查询

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

这会给你留下孤立的postmeta条目,你必须在某些时候处理。 – janh

相关问题