搜索
首页CMS教程WordPress浅析WordPress中文章ID不连续问题怎么解决(完美方法)

WordPress中文章ID不连续问题怎么解决?下面本篇文章给大家分享下WordPress完美解决文章ID不连续问题的方法,希望对大家有所帮助!

浅析WordPress中文章ID不连续问题怎么解决(完美方法)

有很多WordPress博客的固定链接中使用了文章ID,但是WordPress由于种种原因导致了文章ID不连续的问题,也经常有博友在论坛中提问要解决这个问题,但是很少能够得到他们满意的答复。

今天我就来告诉你如何完美的解决这个问题,说是完美,可能有点过了,WordPress 3.0 之后的版本都会有个自动草稿,每发表一篇文章就会占两个ID号,目前还没有禁用的方法。还请继续往下看如何一定程度上解决文章ID不连续的问题。

当然如果你的固定链接中没有使用post ID,那么对你来说文章ID是透明的,无关紧要。即使固定链接中用了post ID,如果你不是特别在意,连不连续也是无关紧要的,本文对你来说也没多大意义了。

一、禁用文章修订版

所谓的文章修订版就是你每次修改一次文章,它都会自动帮你保存修改之前的文章版本,专业术语叫做版本控制,这样保证了在误修改的情况下可以还原之前的内容,这个在维基文档的维护方面是有很大帮助的,但是作为我们的小博客,似乎没多大用处,而且这个修订版在数据库中是占据一个ID的,这也是导致文章ID不连续的问题之一。要想禁用文章修订版,可以在 wp-config.php文件中添加:

define('WP_POST_REVISIONS', false);

     也可以在当前主题的functions.php添加以下PHP代码:

// 禁用修订版本,2015年3月5日更新
add_filter( 'wp_revisions_to_keep', 'specs_wp_revisions_to_keep', 10, 2 );
function specs_wp_revisions_to_keep( $num, $post ) {
   if ( 'post_type' == $post->post_type )
      $num = 0;

   return $num;
}

二、删除文章修订版

禁用了文章修订版之后,数据库中还是保存着之前已经创建的文章修订版,这些其实已经没多大用处,而且占着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';

三、删除不必要的附件

相信很多博友在发布文章都会同时上传/插入一些附件,如图像、视频、音乐等,这些附件可以在WordPress管理后台 - 媒体库中看到,不同媒体对应了不同的文章。可是你要注意的是这些媒体也是占据着文章ID的,它们与文章都保存在同一个数据库表wp_posts中。如果你特别追求文章的ID一定要完美无缺地连续,请不要在发布文章的时候上传/插入这些媒体,并请在WordPress管理后台 - 媒体库中,删除之前上传的媒体(注意这个操作不只是删除记录,而且会删除你上传的文件),需要的话请用FTP重新上传这些文件。

四、禁用自动保存

自动保存的好处是你在编辑文章的时候,每隔一小段时间系统会自动帮你保存编辑的文章,防止网页突然关闭,导致之前写的几千字哗啦一下全没了。缺点是每篇都文章都会有一个自动保存的记录,同样占据一个文章ID,也是文章ID不连续的原因之一,如果你不需要这个功能,可以在当前主题的functions.php中添加以下代码:

// 禁用自动保存,所以编辑长文章前请注意手动保存。
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );

五、重新排列不连续的文章ID

方法一:可在当前主题的functions.php中加入以下PHP代码,这样如果你只是单纯发文章,不发页面,不添加菜单,不上传媒体的话,基本上此后的文章ID是连续的,而且不改变之前已经发布的文章ID,不影响SEO:

// WordPress 3.8测试有效
function keep_id_continuous(){
  global $wpdb;

  // 删掉自动草稿和修订版
  $wpdb->query("DELETE FROM `$wpdb->posts` WHERE `post_status` = 'auto-draft' OR `post_type` = 'revision'");

  // 自增值小于现有最大ID,MySQL会自动设置正确的自增值
  $wpdb->query("ALTER TABLE `$wpdb->posts` AUTO_INCREMENT = 1");  
}

add_filter( 'load-post-new.php', 'keep_id_continuous' );
add_filter( 'load-media-new.php', 'keep_id_continuous' );
add_filter( 'load-nav-menus.php', 'keep_id_continuous' );

如果你使用了置顶文章、菜单和父子页面等功能,下面的方法失效:

方法二:完成以上几步,基本上可以保证以后发布的文章ID都会是连续的了,但是之前已经发布的文章ID还是一片混乱,得把他们重新排列,以保证是ID是连续的。我写了一个PHP脚本,你可以通过以下网址下载,下载后用文本编辑器打开,根据开头的说明修改数据库信息,然后将该PHP文件上传至你的博客空间,运行一下看到OK就可以了,你可以到phpmyadmin中查看wp_posts表中的id是不是连续的了。还是那句话,开始之前请先备份你的数据库。(如果你使用了post id作为固定链接,那么将可能改变所有文章的网址,会影响搜索引擎收录;如果你用的插件建立了新的数据库表,如投票插件等,也将会出现问题;如果你的博客中创建了父子关系的页面,运行了以下脚本将会失去此关系。请慎用!)

下载此文件

推荐学习:《WordPress教程

以上是浅析WordPress中文章ID不连续问题怎么解决(完美方法)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:露兜即刻。如有侵权,请联系admin@php.cn删除
我可以在3天内学习WordPress吗?我可以在3天内学习WordPress吗?Apr 09, 2025 am 12:16 AM

能在三天内学会WordPress。1.掌握基础知识,如主题、插件等。2.理解核心功能,包括安装和工作原理。3.通过示例学习基本和高级用法。4.了解调试技巧和性能优化建议。

WordPress是CMS吗?WordPress是CMS吗?Apr 08, 2025 am 12:02 AM

WordPress是内容管理系统(CMS)。它提供内容管理、用户管理、主题和插件功能,支持创建和管理网站内容。其工作原理包括数据库管理、模板系统和插件架构,适用于从博客到企业网站的各种需求。

WordPress有什么用?WordPress有什么用?Apr 07, 2025 am 12:06 AM

wordpressgood forvortalyanewebprojectDuetoItsAsatilityAsacms.itexcelsin:1)用户友好性,允许Aeserywebsitesetup; 2)sexibility andcustomized andcustomization and numerthemesandplugins; 3)seoop timigimization; and4)and4)

我应该使用Wix或WordPress吗?我应该使用Wix或WordPress吗?Apr 06, 2025 am 12:11 AM

Wix适合没有编程经验的用户,WordPress适合希望有更多控制和扩展能力的用户。1)Wix提供拖放式编辑器和丰富模板,易于快速搭建网站。2)WordPress作为开源CMS,拥有庞大社区和插件生态,支持深度自定义和扩展。

WordPress的成本是多少?WordPress的成本是多少?Apr 05, 2025 am 12:13 AM

WordPress本身免费,但使用需额外费用:1.WordPress.com提供从免费到付费的套餐,价格从每月几美元到几十美元不等;2.WordPress.org需购买域名(每年10-20美元)和托管服务(每月5-50美元);3.插件和主题多数免费,付费的价格在几十到几百美元之间;通过选择合适的托管服务、合理使用插件和主题、定期维护和优化,可以有效控制和优化WordPress的成本。

WordPress仍然免费吗?WordPress仍然免费吗?Apr 04, 2025 am 12:06 AM

WordPress核心版本是免费的,但使用过程中可能产生其他费用。1.域名和托管服务需要付费。2.高级主题和插件可能需要付费。3.专业服务和高级功能可能需要付费。

对于初学者来说,WordPress容易吗?对于初学者来说,WordPress容易吗?Apr 03, 2025 am 12:02 AM

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

为什么有人会使用WordPress?为什么有人会使用WordPress?Apr 02, 2025 pm 02:57 PM

人们选择使用WordPress是因为其强大和灵活性。1)WordPress是一个开源的CMS,易用性和可扩展性强,适合各种网站需求。2)它有丰富的主题和插件,生态系统庞大,社区支持强大。3)WordPress的工作原理基于主题、插件和核心功能,使用PHP和MySQL处理数据,支持性能优化。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境