许多WordPress博主在设置固定链接时选择使用文章ID,但WordPress的某些原因导致文章ID出现不连续的现象。自WordPress 3.0版本以来,每当发布一篇文章,系统会自动创建一个草稿,这会占用2个ID号,目前还没有方法可以禁用这一功能。接下来,我将介绍如何在一定程度上解决文章ID不连续的问题。
WordPress文章id不连续的原因
文章自动修订
文章修订版是一种自动记录每次文章修改的功能,它通过版本控制来保存文章的原始状态,以防万一需要恢复到先前版本。虽然这项功能在维护大型文档或维基百科等项目时非常有用,但对于小型博客来说,可能显得有些多余。此外,每次修订都会在数据库中占用一个独立的ID,这会导致文章ID的不连续性。
文章自动保存
文章的自动保存功能可以在编辑过程中定时保存文章,这样即使遇到网页崩溃等意外情况,也不会丢失辛苦编写的内容。然而,这种自动保存的机制同样会在数据库中为每篇文章创建一个记录,这也会导致文章ID的不连续。
媒体附件
许多博主在发布文章时会上传图片、视频或音乐等多媒体内容。这些附件可以在WordPress的媒体库中查看,并且与文章关联。需要注意的是,这些媒体文件也会占用数据库中的ID,与文章一同存储在wp_posts表中,这同样可能影响文章ID的连续性。
禁用文章修订版
要想禁用文章修订版,有两种办法:
代码修改
在 wp-config.php文件中添加:
define('WP_POST_REVISIONS', false);
使用插件:Disable Post Revision
可在插件库中直接搜索安装,启用后进入后台-设置-撰写中,设置需要启用该功能的对象。
删除文章修订版
禁用了文章修订版之后,数据库中还是保存着之前已经创建的文章修订版,这些其实已经没多大用处,而且占着ID,我们可以将它删除。至于怎么删除,有两种办法:
数据库修改
在 phpmyadmin 中执行以下SQL语句(记得做好备份):
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';
使用插件
很多插件比如Database Cleaner、WP Rocket、WP Fastest Cache都带有数据库清理的功能,安装后即可轻松清理。
禁用文章自动保存
如果你不需要这个功能,请
代码修改
在以下两个文件中:
- wp-admin/post-new.php
- wp-admin/post.php
注释掉这行:
//wp_enqueue_script('autosave');
使用插件:Disable Autosave
可在插件库中直接搜索安装,开启后自动禁用自动保存。
删除不必要的附件
如果你特别追求文章的ID一定要完美无缺地连续,请不要在发布文章的时候上传/插入这些媒体,并请在WordPress管理后台 – 媒体库中,删除之前上传的媒体(注意这个操作不只是删除记录,而且会删除你上传的文件),需要的话请用FTP重新上传这些文件。