Products
GG网络技术分享 2025-03-18 16:06 12
不时地知道WordPress中的帖子或页面的ID会很方便,对吧?
无论是用于简码,在主题设置中进行设置时,还是只是为了获得快速链接。
不管是什么情况,WordPress 都不容易找出帖子的 ID。 获取它的一种方法是访问帖子的编辑页面并查看 URL。 它应该看起来像这样:
https://yourwebsite.com/wp-admin/post.php?post=137171&action=edit
这 137171 在上面的示例中是帖子的 ID - 数据库中的主要标识符。 肯定有更简单的方法来解决这个问题,对吧? 幸运的是,有。
最简单的解决方案是使用插件。 祖父是 Reveal IDs,这是一个免费插件,下载量刚刚超过 425,000 次。
另一个新选项是 WPsite Show IDs。
这两个插件做的事情几乎相同:显示帖子、页面、用户、类别、自定义分类法、自定义帖子类型等的 ID。 我倾向于 WPsite Show ID 的唯一原因是 8Kb 的占用空间。 Reveal Ids 大约 311Kb,对于这样一个简单的插件来说似乎有点过分。
如果您对如何自己显示帖子 ID 感兴趣,让我们看一下代码。
下面的代码应该放在插件或主题的函数文件中。 如果您想创建一个插件,请查看我们的插件开发指南以获得一个简单的模板。
在我们开始之前,还值得一提的是,您应该创建一个子主题。 如果您还不熟悉如何创建儿童主题,请查看我们的儿童主题指南。
WordPress 提供了很好的工具来修改管理员帖子列表,包括创建您自己的列和内容。 我们需要使用过滤器来添加列和操作来添加值。 让我们对常规帖子表进行快速测试:
这就是我们所需要的。 过滤器允许我们通过修改列数组来添加列。 数组键应该是列的标识符,值将显示为标题文本。
与动作挂钩的函数有两个参数:显示帖子的列名和 id。 这是完美的——我们确保在显示我们的自定义列时简单地回显 ID。
“显示”功能是我的双关语尝试,对此感到抱歉! 它是我们所有函数的前缀,以确保它们不会与其他插件发生冲突。
快速旁白:注意我是如何使用的 'revealid_id' == $column
,这似乎有点陌生。 这称为尤达条件,在 WordPress 中是首选条件。 原因是如果您忘记定义变量,您的页面上不会出现巨大的 PHP 错误。
上面的两个函数就是我们所需要的。 剩下的一块拼图是 在哪里 将它们挂钩。我们使用的挂钩仅针对常规帖子,我们的 ID 不会显示在页面或其他元素中。
实际上,这些钩子被称为 可变挂钩 因为它们属于标准化集合。 常见的形式是: manage_[post_type_or_element]_columns
和 manage_[post_type_or_element]_custom_column
.
基于此,帖子、页面、媒体和自定义帖子类型应该很容易,因为这些都是帖子类型。 要为所有这些元素显示 ID,您可以使用以下钩子:
这里有一个小警告:除了帖子和页面之外的所有内容都使用帖子类型。 帖子的帖子类型在技术上是“帖子”,页面的帖子类型是“页面”。 由于某种原因,钩子使用复数形式。 这是一个 WordPress 怪癖,因为它确实应该是单数形式。 看,即使是 WordPress 核心也不完美。
我在那里添加了一个自定义帖子类型:项目。 如果您想将此应用于 全部 自定义帖子类型? 在这种情况下,您可以像这样轻松地循环所有这些:
在处理分类法时,我建议使用相同的方法。 要仅输出类别的 ID,您可以使用 manage_edit-link-categories_columns
和 manage_link_categories_custom_column
但是要将其添加到所有分类法中,我们需要使用另一个循环:
最后但同样重要的是,我们有用户和评论。 这些也相当简单。 看一看:
这个小小的改变比看起来要困难一些。 当我们添加 ID 列时,我们将其附加到包含所有其他列的现有数组的末尾。 解决方案似乎很简单:将其添加到前面。 我们可以通过合并数组来做到这一点,但事实证明复选框是第一列——我们实际上希望 ID 排在第二位。
我们仍将使用数组合并,但我们需要更多技巧——我们需要先将其拆分。 第一个数组将包含复选框(原始数组的第一个元素),第二个数组将包含其他所有内容。 我们将第一个数组与包含我们 ID 的数组合并,然后与第二个数组合并。 代码应该使这一点更清晰:
我认为这是 WordPress 模块化的一个很好的例子。 ID 曾经显示在管理员中(WordPress 2.5 之前),但事实证明没有多少人需要它们。 删除此功能后,插件应运而生,以迎合那些仍想查看帖子 ID 的人。
编写我们自己的插件可以一瞥 WordPress 的模块化程度以及修改管理员本身的容易程度。 上面概述的相同方法可用于将缩略图、描述片段和其他信息添加到管理列表中。
标签:Demand feedback