本文是《WordPress教程(共15篇)》专题的第 13 篇。阅读本文前,建议先阅读前面的文章:
- 1.【WordPress教程】实现鼠标点击页面出现富强自由等文字特效
- 2.解决升级WordPress时提示:另一更新正在进行
- 3.WordPress“正在执行例行维护,请一分钟后回来“解决方法
- 4.wordpress添加花瓣飘落和右边梅花特效
- 5.WordPress添加百度API 自动提交收录
- 6.【WordPress】修改默认后台登陆管理员地址防爆破
- 7.WordPress网站添加每日60s读懂世界新闻-自动发布(每天60秒读懂世界是什么软件)
- 8.WordPress禁止发表重复标题的文章-纯代码
- 9.WordPress给指定文章标题添加自定义颜色
- 10.WordPress实现文章标题自定义网址链接
- 11.WordPress死链自动收集方便提交到站长平台
- 12.WordPress实现文章内容收缩和展开功能教程
很多使用WordPress搭建网站的朋友都采用了文章ID作为固定链接,但由于存在草稿、修订版本、附件等,这个ID号增长得非常快。对于强迫症患者而言,文章的ID号并不连续,跳跃式增长,会让人感到很不舒服。
1.对于数据库的操作,一定要事先进行数据备份并确保备份文件可用。数据无价,谨记!
2. 禁用文章修订版本和自动保存功能,可以使用 WPJAM-Basic 插件来禁用文章修订版本和自动保存
3. 删除冗余的修订版本和自动保存,[wm_login]
一、方法一直接在数据库中操作:
1、清理文章历史修订版本的语句
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’;
2、修改文章时产品的一些冗沉数据
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_last’;
3.、进入数据库对数据表进行下优化
4、重新排列不连续的文章ID
复制php脚本代码至 id.php,上传到你主机根目录下,访问:http://localhost/id.php ,即可达到重新排序的效果,从1开始。
<?php
/** 引入网站配置文件,这里主要获得数据库连接信息及常规操作类 */
require_once './wp-config.php';
function change_post_id($id)
{
global $convertedrows, $wpdb;
/** 修改文章ID关联的类别、标签、、评论各表,prefix是您安装时设置的数据库表前缀 */
$wpdb->query('update ' . $wpdb->prefix . 'posts set ID = ' . $convertedrows . ' where ID = ' . $id);
$wpdb->query('update ' . $wpdb->prefix . 'term_relationships set object_id = ' . $convertedrows . ' where object_id = ' . $id);
$wpdb->query('update ' . $wpdb->prefix . 'postmeta set post_id = ' . $convertedrows . ' where post_id = ' . $id);
$wpdb->query('update ' . $wpdb->prefix . 'comments set comment_post_ID = ' . $convertedrows . ' where comment_post_ID = ' . $id);
$convertedrows++;
}
/** ID默认由1开始 */
$convertedrows = 1;
/** 库文章表所有记录 */
$sql_query = 'SELECT ID FROM ' . $table_prefix . 'posts ORDER BY ID ASC';
$all_post_ids = $wpdb->get_results($sql_query);
/** 有返回值时则执行循环 */
if (is_array($all_post_ids)) {
foreach ($all_post_ids as $post_id) {
change_post_id($post_id->ID);
}
}
/** 重新设置文章ID自动增加的起点 */
$wpdb->query('alter table ' . $table_prefix . 'posts AUTO_INCREMENT = ' . $convertedrows);
echo 'Total:' . $convertedrows . ', It\'s ok! ';
?>
方法二
一、打开wp-config.php文件,在最后添加代码
define(‘WP_POST_REVISIONS’, false);
define(‘AUTOSAVE_INTERVAL’, false);
二、打开wp-admin下
post-new.php(第46行)和post.php(第177行)这两个文件
将其wp_enqueue_script(‘autosave’); 删除或者注释,建议注释// wp_enqueue_script(‘autosave’);
三、打开wp-adminincludespost.php文件
找到if ( $create_in_db ),在它的前一行添加$create_in_db = false;
$create_in_db = false;
if ( $create_in_db )
通过这三步,就可以让Wordpress文章ID连续,想用ID做文章名的朋友赶快来吧!不过我只是看见ID不连续不爽,典型ID控^_^BUG:发布文章、页面后都会跳转到文章列表。如果以前Wordpress发表过文章造成ID不连续,我想让ID连续有什么办法,当然有咯。请看让Wordpress文章ID重新排列的方法介绍。
前面我们介绍过让Wordpress文章ID连续的方法,如果以前Wordpress发表过文章造成ID不连续,我想让ID连续有什么办法,当然有咯。现在就顺便介绍让Wordpress文章ID重新排列的方法。
三、让Wordpress 文章 ID重新排列
一、在执行SQL:
ALTER TABLE wp_posts DROP ID;
OPTIMIZE TABLE wp_posts;
ALTER TABLE wp_posts ADD ID BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
二、进入 phpmyadmin 选择wp_posts数据表
点击操作 AUTO_INCREMENT 的值为n+1,其中n为 wp_posts中最大ID数(PS:有点回到高考的感觉^_^)
BUG:这种方法会造成文章没有关键字,评论不会对应原来的文章,对应的是原来的ID
一、导出Wordpress所有文章
二、清空以下数据表
wp_posts
wp_postmeta
wp_terms
wp_term_taxonomy
wp_term_relationships
三、导入Wordpress文章
BUG好像没有,不过新的文章前面ID是草稿到发布的文章,然后草稿和发布的文章按时间先后排列。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们第一时间更新。