最近访客
百度未收录

WordPress 发文章如何让ID连续的方法(有序ID)?

很多站长朋友在使用WordPress的时候,发现发布的文章并不连续。当你发布一篇文章ID是1,但是发布第二篇文章ID是3,或者4,甚至可以排到几千,这是为什么呢?

这是因为我们使用了

/%post_id%.html

这种固定连接形式,包括星空站长网,也是使用这种形式的ID,所以可以看到很多文字依次发布,但ID却不是连续的。

WordPress 在设计之初,并没有考虑到图片附件、自动保存、草稿等都会占用ID,致使文章ID不连续。

老版本编辑器的Wordpress可以在发文的时候修改固定连接,这种方法虽然有效,但是很麻烦,不可能每篇都做这样的操作。

WordPress 发文章如何让ID连续的方法(有序ID)?-狐狸库

禁用修订版

在Wordpress 3.0之后的版本,都会帮你保存修改之前的文章,这个功能在发表文章的时候,使得Wordpress占用了两个ID。修订版是一个ID,实际发布的文章又是一个ID。通过禁用自动保存草稿,来防止多个ID的生成。

方法1在 wp-config.php文件中添加:

define(\'WP_POST_REVISIONS\', false);

方法2在当前主题的functions.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\';

执行后即可删除所有的文章修订版。

删除没用的图片和附件

当你打开媒体库,你会发现这些图片,视频音乐等附件,同样占了一个ID,它们与文章都保存在同一个数据库表wp_posts中。如果你特别追求文章的ID一定要完美无缺地连续,请不要在发布文章的时候上传/插入这些媒体,并请在WordPress管理后台 – 媒体库中,删除之前上传的媒体(注意这个操作不只是删除记录,而且会删除你上传的文件),所以不建议删除。

禁用自动保存

自动保存的草稿也会占一个ID,我们需要把自动保存禁掉。

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

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

重新排列顺序

在当前主题的functions.php中加入以下PHP代码:

// 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顺序有序排列,其实是一种强迫症心理作祟,为了这种二追求连续而强迫修改。不如弃用 WordPress 改用其他相关程序。

只要文章质量高,其实连续不连续都无所谓。

温馨提示:本文最后更新于2022/10/20 03:48:14。若文章内容或图片失效,请留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容