我发现wordpress后台写文章页面,每刷新一次就会在数据表里创建一条自动草稿的数据,如果恶意刷新该页面,那么数据表里会产生越来越多垃圾数据,从网上找了许多解决办法,试了后也不起什么作用,最后终于解决了
解决办法:
进入项目后,找到/wp-admin/includes/post.php文件,然后搜索“$create_in_db”,确定代码位置,内容如下:

然后添加如下代码:

附修改的代码文本如下:
if ( $create_in_db ) {
// ===== 屏蔽每次都创建自动草稿功能 =============
// $post_id = wp_insert_post(
// array(
// 'post_title' => __( 'Auto Draft' ),
// 'post_type' => $post_type,
// 'post_status' => 'auto-draft',
// ),
// true,
// false
// );
//
// if ( is_wp_error( $post_id ) ) {
// wp_die( $post_id->get_error_message() );
// }
//
// $post = get_post( $post_id );
// ==== 添加该段代码start (获取该用户的最后一条自动草稿,有就使用,如没有才创建) =====
$posts = query_posts(array(
'post_status' => 'auto-draft',
'post_type' => $post_type,
'author' => get_current_user_id(),
'posts_per_page' => 1
));
if ($posts) {
$post = get_post($posts[0]->ID);
} else {
$post_id = wp_insert_post(array(
'post_title' => __('Auto Draft') ,
'post_type' => $post_type,
'post_status' => 'auto-draft',
));
$post = get_post($post_id);
}
// ========= 添加该段代码 end ===========
上面的代码是允许保存自动草稿,如果数据库中已有该用户的自动草稿,下次写文章时,会自动加载该用户最新的一条自动草稿用作新文章ID,避免产生大量垃圾数据。