如何在WordPress admin中显示帖子和页面ID

每一次又一次,知道WordPress中的帖子或页面的ID可以方便,右?

是否是用于短代码,当在主题设置中设置某些东西时,或者只是为了获得快速链接.

无论如此如此,WordPress不会让您轻松弄清除帖子的ID.抓取的一种方法是访问帖子的编辑页面并查看URL.它应该看起来像这样:

https://yourwebsite.com/wp-admin/post.php?post=137171&action=edit

在上面示例中 137171 是数据库中的主要标识符的ID.当然,必须有一种更简单的方法来搞清楚吗?幸运的是,有.

  • 使用插件显示帖子ID
  • DIY:用代码显示帖子ID

    • 添加自定义列
    • 找到右钩子
    • 将ID放在前面

  • 结论

显示带插件的帖子ID

最简单的解决方案是使用插件.爷爷是透露ID,一个免费插件,在425,000岁以下的下载时钟.

另一个新选项是wpsite显示ID.

两个插件对同一行为有关:显示帖子,页面,用户,类别,自定义分类,自定义帖子类型等的ID.我倾向于Wpsite的唯一原因显示ID是8KB占地面积.揭示IDS大约在311KB左右,这对于这种简单的插件似乎有点过多.

DIY:显示代码

的帖子ID

如果您对如何自己显示发布IDS感兴趣,请查看代码.

下面的代码应该进入插件或主题的函数文件.如果您想创建插件,请查看我们的插件开发指南,以获得一个简单的模板.

在我们开始之前,它也值得一说你应该创造一个孩子主题.如果您尚未熟悉如何创建一个,请查看我们的儿童主题指南.

添加自定义列

WordPress提供了修改管理员帖子列表的优秀工具,包括创建自己的列和内容.我们需要使用过滤器添加列和操作以添加值.让我们在常规帖子表上进行快速测试:

加载GIST 8E81830694B67463883023505FE0377

这就是我们所需要的.过滤器允许我们通过修改列数组来添加列.数组密钥应该是列的标识符,并且该值将显示为标题文本.

挂钩到动作的函数需要两个参数:显示列名称和帖子的ID.这是完美的-我们确保在显示自定义列时简单地呼应ID.

"揭露"功能是我对双关语的尝试,抱歉!它是指所有功能的前缀,以确保他们不与其他插件碰撞.

一个快速放在一边:注意我如何使用'revealid_id' == $column,这似乎有点外星人.这被称为yoda条件,并且在WordPress中是优选的.推理是,如果您忘记定义变量,则不会在页面上获得巨大的缩小PHP错误.

查找右钩子

上面的两个函数是我们所需要的.困难的拼图是挂钩.我们使用目标常规帖子的钩子,我们的ID不会出现页面或其他元素.

实际上,这些钩子称为变量挂钩,因为它们属于标准化集.常见形式是:manage_[post_type_or_element]_columnsmanage_[post_type_or_element]_custom_column.

基于此,帖子,页面,媒体和自定义帖子类型应该简单,因为这些都是所有帖子类型.要使IDS显示所有这些元素,您可以使用以下钩子:

加载GIST F5D3A74815180D6CAAE226DE135A8421

这里的小警告:除了帖子和页面之外的所有内容使用帖子类型.帖子的帖子类型在技术上是"帖子"页面的帖子类型为"页面".由于某种原因,钩子使用复数形式.这是一个WordPress Quirk,因为它真的应该是单一形式.看,即使是WordPress核心也不完美.

我在那里添加了一个自定义帖子类型:项目.如果要将其应用于所有自定义帖子类型,该怎么办?在这种情况下,您可以轻松地循环它们如下:

加载GIST FA188E0650AB09CC1ACB796165D88864.

我建议在处理分类时相同的方法.仅输出类别的ID,您只能使用manage_edit-link-categories_columnsmanage_link_categories_custom_column,但要将其添加到我们需要使用另一个循环的所有分类物:

加载GIST 6D2EBE47188E8599EB3B0FE3527D4860

最后但并非最不重要的是,我们有用户和评论.这些也很直截了当.看看:

加载GIST 96C1E364E6F29421D38595C509B53536

将ID放在前面

这个小的变化比似乎更困难.当我们添加ID列时,我们将其附加到包含所有其他列的现有数组的末尾.解决方案似乎很容易:将其添加到前面.我们可以通过合并阵列来完成此操作,但事实证明,复选框是第一个列-我们实际上希望在第二位的ID.

我们仍然会使用数组合并,但我们需要更具诡计-我们需要先分割它.第一个数组将包含复选框(原始数组的第一个元素),第二个数组将包含其他所有内容.我们将使用包含我们的ID的数组来合并第一个数组,然后使用第二个数组.代码应该使这很多更清晰:

加载gist ceb06c8dd27458696ebb4d89358eeda3.

结论

我认为这是WordPress的模块化的一个很好的例子.ID次数曾在管理员中显示(Pre-WordPress 2.5),但事实证明它没有许多人需要它们.一旦删除此功能,插件向上兴起为仍然希望看到帖子ID的人.

编写自己的插件可以一瞥模块化WordPress如何以及修改管理员自己的方式是多么容易.上面概述的相同方法可用于添加缩略图,描述片段和其他信息到管理员列表表.

8

发表回复