«

求助,接上一个emlogPro最新版本如何解决分类ID删除以后不连续的问题啊

大叫花子资源网 • 2024-03-30 10:50 • 134 次点击 • ❓问题求助


感谢 @那多记忆 大佬的热心回答
接上一个问题,emlogPro最新版本如何解决分类ID删除以后不连续的问题啊
上次大佬给的插件只能解决文章的ID不连续问题,分类删除以后那个ID不连续无法解决

评论:
avatar
Sge1S2hl 用户2024-04-12 16:59
下面是插件代码,自己保存为插件,解决不能解决反馈一下
avatar
Sge1S2hl 用户2024-04-12 16:59
<?php
/*
Plugin Name: Emlog ID Optimizer
Plugin URI: https://github.com/emlog/emlog
Description: 优化 Emlog 文章和分类 ID,使其连续。
Version: 1.0
Author: Your Name
Author URI: https://yourwebsite.com
*/

function emlog_id_optimizer_menu() {
    add_menu_page('Emlog ID Optimizer', 'ID 优化', 'administrator', 'emlog_id_optimizer', 'emlog_id_optimizer_page');
}
add_action('admin_menu', 'emlog_id_optimizer_menu');

function emlog_id_optimizer_page() {
    if (isset($_POST['optimize_posts'])) {
        optimize_posts();
    }

    if (isset($_POST['optimize_terms'])) {
        optimize_terms();
    }

    echo '<div class="wrap">';
    echo '<h2>Emlog ID Optimizer</h2>';
    echo '<form method="post" action="">';
    echo<input type="submit" name="optimize_posts" value="优化文章 ID" class="button-primary" />';
    echo<input type="submit" name="optimize_terms" value="优化分类 ID" class="button-primary" />';
    echo '</form>';
    echo '</div>';
}

function optimize_posts() {
    global $wpdb;

    $posts = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish' ORDER BY ID ASC");
    $new_id = 1;

    foreach ($posts as $post) {
        $wpdb->update($wpdb->posts, array('ID' => $new_id), array('ID' => $post->ID));
        $new_id++;
    }

    echo '<div class="updated"><p>文章 ID 优化完成!</p></div>';
}

function optimize_terms() {
    global $wpdb;

    $terms = $wpdb->get_results("SELECT term_id FROM {$wpdb->terms} ORDER BY term_id ASC");
    $new_id = 1;

    foreach ($terms as $term) {
        $wpdb->update($wpdb->terms, array('term_id' => $new_id), array('term_id' => $term->term_id));
        $new_id++;
    }

    echo '<div class="updated"><p>分类 ID 优化完成!</p></div>';
}
commentator
大叫花子资源网 楼主2024-04-12 17:08
@Sge1S2hl:大佬牛逼,感谢大佬
commentator
大神博客ds17.cn 用户约 18 小时前
@大叫花子资源网:是不是已经解决了
commentator
大叫花子资源网 楼主约 14 小时前
@大神博客ds17.cn:没有解决,虽然确实可以解决id连续,但是文章这些如果重新发布,恰好用到了以前的id,打开会404界面,关闭插件就好了
commentator
大神博客ds17.cn 用户约 18 小时前
@大叫花子资源网:上面的人也是我
commentator
大叫花子资源网 楼主约 14 小时前
@大神博客ds17.cn:感谢大佬的回复
commentator
大神博客ds17.cn 用户约 10 小时前
@大叫花子资源网:主要我用的wordpress,emlog我提供了一下思路
avatar
那多记忆 管理员2024-03-30 11:59
目前没有解决方案。可以使用分类别名来访问分类,