当前位置:首页 > 网络科技 > WordPress获取不连续的文章ID

WordPress获取不连续的文章ID

1年前 (2024-08-25)admin网络科技77

大多程序员对自己的代码都还是拥有极致的追求,子凡我也不例外,作为 WordPress 中毒爱好者来说,WordPress 文章 ID 不连续的问题总是萦绕在心中,其实早在两年前我就有解决一半的问题,其原理就是当删除文章时记录删除文章的 ID,然后写文章的时候就去取回这些被删除文章的 ID 来用。

虽然似乎解决了问题,但是这个功能只能对往后的新内容操作执行,而对于对于像我们泪雪网这样运营多年的老网站来说还无法获取到之前删除过的文章 ID,那么今天子凡就来解决一下这个问题,处理方式也非常简单,就是通过以下代码获取数据库中文章表 wp_posts 中的不连续 ID,将跳过的 ID 查询出来即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//WordPress 获取不连续的文章 ID by Fanly https://w.haolusi.com/wordpress-get-skip-post-id.html
//require('./wp-load.php'); //如果是在别的目录运行记得加载 wp-load.php
 
global $wpdb;
 
// 获取最小和最大的 post ID
$min_max_ids = $wpdb->get_row("SELECT MIN(ID) AS min_id, MAX(ID) as max_id FROM {$wpdb->prefix}posts", ARRAY_A);
 
// 获取所有已使用的 post ID
$used_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->prefix}posts");
 
$missing_ids = array();
 
// 遍历从最小到最大的所有 ID,找出未使用的 ID
for ($i = $min_max_ids['min_id']; $i <= $min_max_ids['max_id']; $i++) {
	if (!in_array($i, $used_ids)) {
		$missing_ids[] = $i;
	}
}
 
// 打印所有未使用的 post ID
print_r($missing_ids);

这段代码首先获取 wp_posts 表中的最小和最大的 post ID,然后获取所有已使用的 post ID。然后它遍历从最小到最大的所有 ID,并检查每个 ID 是否在已使用的 ID 列表中。如果不在,那么就把这个 ID 添加到$missing_ids 数组中。这段代码可能需要一些时间来运行,特别是当有大量的文章和大量的不连续 ID 时。

虽然可以找出未使用的 ID,并且通过开发让 WordPress 自动使用这些 ID,但也不能保证这些 ID 将会保持未使用。而且手动设置 WordPress 的 ID 可能会导致数据不一致和其他问题。所有大家开发时根据自己网站实际情况和需要来使用,当时肯定也可以在使用这些新 ID 时做一些判断来避免。

注明:require(‘./wp-load.php’); 这行代码的目的是引入 WordPress 的主要配置文件(wp-load.php),使你的脚本可以使用 WordPress 的函数和类。然而,实际的文件路径可能会根据你的脚本所在的位置和 WordPress 安装的位置有所不同。’./wp-load.php’ 假设你的脚本和 wp-load.php 文件位于同一目录下。如果你的脚本位于不同的目录,你可能需要使用不同的路径。例如,如果你的脚本位于一个子目录中,你可能需要使用 require(‘../wp-load.php’);,这样就可以向上一级目录查找文件。

更多关于WordPress优化及疑问可以添加留言

w.haolusi.com

本文链接:https://w.haolusi.com/wordpress-get-skip-post-id.html

扫描二维码推送至手机访问。

版权声明:本文由豪鲁斯兴趣网发布,如需转载请注明出处。

本文链接:https://w.haolusi.com/?id=1518

标签: WordPress优化
分享给朋友:

“WordPress获取不连续的文章ID” 的相关文章

尽早觉醒:找到自己一人能做的互联网生意

尽早觉醒:找到自己一人能做的互联网生意

没有经历过裁员的职场是不完美的。无论何种原因经历次裁员,可能对心智都是一次提升,前面也写过技术人怎么利用空窗期的文章技术人的空窗期,你的涅槃重生。经历过裁员的时候难免感到复杂和沉重。离开的背后,不仅有情感的波动,还有对未来的深深焦虑。当你被通知离职的那一刻,情绪复杂得难以描述。但是,当冷静下来,你会...

WordPress如何将管理员用户主页改为网站首页

WordPress如何将管理员用户主页改为网站首页

最近在做 WordPress 站群的一些项目测试,主题在调用作者的时候就会链接到作者主页,加上很多时候 WordPress 网站就只会使用一个账户来发布文章,虽然可以通过修改主题代码的方式将作者的链接直接链接到网站首页,但是作为一个优雅的 WordPress 开发者来说,肯定是不会轻易动主题源码的,...

最新免费可用!ChatGPT 4.0/4o/3.5 镜像 Mirror|免翻直链中文镜像(2024年8月更新)

最新免费可用!ChatGPT 4.0/4o/3.5 镜像 Mirror|免翻直链中文镜像(2024年8月更新)

本篇文章目录|Table of Contents Hide ChatGPT 4.0/4o/3.5 镜像站列表ChatGPT镜像更新历史什么是Cha...

MySQL如何选择utf8mb4_general_ci和utf8mb4_0900_ai_ci字符集排序规则

MySQL如何选择utf8mb4_general_ci和utf8mb4_0900_ai_ci字符集排序规则

最近在做一些关于新项目的规划和测试,那么既然是要做新的项目当然首先要考虑的就是最新的技术标准,也把开发环境都统一升级了一遍,而在做 MySQL 数据库创建的时候就发现了一个小小的变化,本着对技术的执着那么就不得不来一探究竟。正式生产环境本着稳定高于一切的宗旨,所以也就不太可能做到数据库方面的升级保持...

Timeline Migrate Tools Boxset 剪辑时间线字幕迁移工具套件|FCPX vs PR|XML vs FCPXML|SRT vs XML|macOS|测试教程 Tutorial

Timeline Migrate Tools Boxset 剪辑时间线字幕迁移工具套件|FCPX vs PR|XML vs FCPXML|SRT vs XML|macOS|测试教程 Tutorial

本篇文章目录|Table of Contents Hide Final Cut Pro X 提取音频给音频编辑X2Pro Audi...

WordPress别名slug增加点(.)符号支持

WordPress别名slug增加点(.)符号支持

熟悉 WordPress 的朋友们都知道,WordPress 在 URL 链接中的处理算得上是一刀切,所有的特殊符号及字符都是使用减号/连字符(-)来进行分隔,这其实是一种对搜索引擎非常友好的分隔方式,也是谷歌搜索引擎所推荐的连字符,其中谷歌有一句提示“不妨考虑在网址中使用连字符来分隔字...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。