WordPress禁用自动草稿、修订版本和自动保存
// ========== 尽量保持文章ID连续 ==========
// 清理自动草稿(auto-draft)和修订版本(revision)造成的ID跳号,重置自增ID
// 注意:手动删除文章留下的空洞无法自动填补,此函数仅做到"尽量连续"
function keep_id_continuous(){
global $wpdb;
$lastID = $wpdb->get_var(
"SELECT ID FROM $wpdb->posts
WHERE post_status IN ('publish','draft','private')
OR (post_status = 'inherit' AND post_type = 'attachment')
ORDER BY ID DESC LIMIT 1"
);
if (!$lastID) return;
$lastID = intval($lastID);
// 删除大于最后有效ID的自动草稿和修订版本
$wpdb->query($wpdb->prepare(
"DELETE FROM $wpdb->posts
WHERE (post_status = 'auto-draft' OR (post_status = 'inherit' AND post_type = 'revision'))
AND ID > %d",
$lastID
));
// 重置自增ID为最后有效ID+1
$wpdb->query("ALTER TABLE $wpdb->posts AUTO_INCREMENT = " . ($lastID + 1));
}
add_action('load-post-new.php', 'keep_id_continuous');
add_action('load-nav-menus.php', 'keep_id_continuous');
// ========== 禁用文章修订版本 ==========
add_filter('wp_revisions_to_keep', function($num, $post) { return 0; }, 10, 2);
// ========== 禁用文章自动保存 ==========
// 仅在后台文章编辑页取消注册autosave脚本,不影响其他页面
add_action('admin_enqueue_scripts', function($hook) {
if ($hook === 'post.php' || $hook === 'post-new.php') {
wp_deregister_script('autosave');
}
});
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭