{
    分享网正式开通,我们为大家提供免费资源,欢迎大家踊跃投稿!

WordPress文章ID重新排序的实现方法

使用 WordPress建站的朋友很多都使用了文章 ID 作为固定链接形式,但由于草稿、修订版本、附件等的存在,这个ID号增长的是很快的。对于强迫症来说,文章的ID号是跳跃式的,并不连续,让人很不舒服。

1. 备份数据库

对于数据库的操作,一定要事先进行数据备份并确保备份文件可用。数据无价,谨记!

2. 禁用文章修订版本和自动保存功能

可以使用 WPJAM-Basic 插件来禁用文章修订版本和自动保存

3. 删除冗余的修订版本和自动保存

直接在数据库中操作:

清理文章历史修订版本的语句


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

修改文章时产品的一些冗沉数据


DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
 

4. 进入数据库对数据表进行下优化

5. 重新排列不连续的文章ID

复制php脚本代码至 id.php,上传到你主机根目录下,访问:http://localhost/id.php ,即可达到重新排序的效果,从1开始。


<?php

require_once './wp-config.php';
function change_post_id($id)
{
        global $convertedrows, $wpdb;
       
        $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++;
}

$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);
        }
}

$wpdb->query('alter table ' . $table_prefix . 'posts AUTO_INCREMENT = ' . $convertedrows);
echo 'Total:' . $convertedrows . ', It\'s ok! ';
?>
 
资源均来自第三方,谨慎下载,前往第三方网站下载


爱资源分享网 , 版权所有丨本站资源仅限于学习研究,严禁从事商业或者非法活动!丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:WordPress文章ID重新排序的实现方法
喜欢 ()分享 (0)