小冬SEO

wordpress上传文章ID不连续删除文章id递增

2019-05-16 13:48:52 2396 WordPress笔记

MD网上查了很多方法都很操蛋,下面这种方法我试过了,还是不生效,这是之前的笔记,所以我在原来的基础之上又增加了第二种“wordpress上传文章ID不连续解决办法”。

第一种:wordpress上传文章ID不连续解决办法

最近学习了wordpress程序,但是我发现一个问题,就是在导入文章的时候,感觉文章的id对应不上。然后到数据库中一看才发现,原来wordpress程序在更新文章或者修改文章的时候都会占用id序列,找到问题原因然后我就删除了所有文章从新尝试,让文章的id从零开始,方法如下,都是加在模板目录的functions.php文件中:

让文章id递增方法:

function keep_id_continuous(){

 global $wpdb;

 $lastID = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' OR post_status = 'draft' OR post_status = 'private' OR ( post_status = 'inherit' AND post_type = 'attachment' ) ORDER BY ID DESC LIMIT 1");

 $wpdb->query("DELETE FROM $wpdb->posts WHERE ( post_status = 'auto-draft' OR ( post_status = 'inherit' AND post_type = 'revision' ) ) AND ID > $lastID");

 $lastID++;

 $wpdb->query("ALTER TABLE $wpdb->posts AUTO_INCREMENT = $lastID");

}

// 将函数钩在新建文章、上传媒体和自定义菜单之前。

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' );

// 禁用自动保存,所以编辑长文章前请注意手动保存。

add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );

// 禁用修订版本

remove_action( 'pre_post_update' , 'wp_save_post_revision' );


// WordPress连续ID,禁用草稿功能函数结束


// 使WordPress在原生编辑器(tiny)下发表文章时,不去除空格

add_filter('tiny_mce_before_init', 'preserve_nbsp_chars');

function preserve_nbsp_chars($initArray) {

$initArray['entities'] = '160,nbsp,'.$initArray['entities'];

return $initArray;

}

注意:这种方法我试过,有时候不生效,但是将代码放在文件最前面就是正常的,如果大家遇到这样的情况,可以这样尝试改下!

通过上面的设置就能够实现文章的id递增,同时删除了文章和回收站中的文章后,文章的id会从现有文档中的最后一个id开始递增,我已经亲自测试过,可以用!注意给上面的两个代码加上<?php ?>

第二种:wordpress上传文章ID不连续解决办法

1、找到根目录下的wp-config.php文件,先查查有没有以下两段代码

/** 禁用修改版。 */
define(‘AUTOSAVE_INTERVAL’, 120000000 ); // 设置自动保存间隔,单位是秒,默认60
define(‘WP_POST_REVISIONS’, false ); // 禁用文章修订功能

如果有,就把这两段代码后面的值改成上面的值

2,继续找到wp-admin/post.php文件中的下面代码,然后注释了。

//  if ( ! wp_check_post_lock( $post->ID ) ) {
//  $active_post_lock = wp_set_post_lock( $post->ID );
//  if ( 'attachment' !== $post_type ) {
//  wp_enqueue_script( 'autosave' );
//  }
//  }
//  $post = get_post( $post_id, OBJECT, 'edit' );
//  if ( post_type_supports( $post_type, 'comments' ) ) {
//  wp_enqueue_script( 'admin-comments' );
//  enqueue_comment_hotkeys_js();
//  }

3、继续找到wp-admin/post-new.php文件中的下面代码,然后注释了。

//  wp_enqueue_script( 'autosave' );

最后我还是实现了文章id递增,但是我上面的两种方法都用上了,第一种没有删,也懒得去删了,实现需求就行!

版权保护: 本文由小冬SEO编辑发布,转载请保留链接: http://www.myseoyh.cn/shuo/103.html