我想在我的WordPress网站上以编程方式删除所有超过两年的帖子。有大约37000个帖子。需要帮助才能批量删除它。怎么可能。?什么是最简单的删除方式。?
答案 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表中得到孤立的数据。我想你不想那样。