如何在 WordPress 管理員中顯示帖子和頁面 ID

已發表: 2015-02-14

不時地知道WordPress中的帖子或頁面的ID會很方便,對吧?

無論是用於簡碼,在主題設置中進行設置時,還是只是為了獲得快速鏈接。

不管是什麼情況,WordPress 都不容易找出帖子的 ID。 獲取它的一種方法是訪問帖子的編輯頁面並查看 URL。 它應該看起來像這樣:

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

上例中的137171是帖子的 ID - 數據庫中的主要標識符。 肯定有更簡單的方法來解決這個問題,對吧? 幸運的是,有。

  • 使用插件顯示帖子 ID
  • DIY:使用代碼顯示帖子 ID
    • 添加自定義列
    • 找到正確的鉤子
    • 將身份證放在前面
  • 結論

使用插件顯示帖子 ID

最簡單的解決方案是使用插件。 祖父是 Reveal IDs,這是一個免費插件,下載量剛剛超過 425,000 次。

另一個新選項是 WPsite Show IDs。

這兩個插件做的事情幾乎相同:顯示帖子、頁面、用戶、類別、自定義分類法、自定義帖子類型等的 ID。 我傾向於 WPsite Show ID 的唯一原因是 8Kb 的佔用空間。 Reveal Ids 大約 311Kb,對於這樣一個簡單的插件來說似乎有點過分。

DIY:使用代碼顯示帖子 ID

如果您對如何自己顯示帖子 ID 感興趣,讓我們看一下代碼。

下面的代碼應該放在插件或主題的函數文件中。 如果您想創建一個插件,請查看我們的插件開髮指南以獲得一個簡單的模板。

在我們開始之前,還值得一提的是,您應該創建一個子主題。 如果您還不熟悉如何創建兒童主題,請查看我們的兒童主題指南。

添加自定義列

WordPress 提供了很好的工具來修改管理員帖子列表,包括創建您自己的列和內容。 我們需要使用過濾器來添加列和操作來添加值。 讓我們對常規帖子表進行快速測試:

加載要點 8e8183e694b674638830e23505fe0377

這就是我們所需要的。 過濾器允許我們通過修改列數組來添加列。 數組鍵應該是列的標識符,值將顯示為標題文本。

與動作掛鉤的函數有兩個參數:顯示帖子的列名和 id。 這是完美的——我們確保在顯示我們的自定義列時簡單地回顯 ID。

“顯示”功能是我的雙關語嘗試,對此感到抱歉! 它是我們所有函數的前綴,以確保它們不會與其他插件發生衝突。

順便說一句:注意我是如何使用'revealid_id' == $column ,這似乎有點陌生。 這稱為尤達條件,在 WordPress 中是首選條件。 原因是如果您忘記定義變量,您的頁面上不會出現巨大的 PHP 錯誤。

找到正確的鉤子

上面的兩個函數就是我們所需要的。 剩下的難題是在哪裡鉤住它們。我們使用的鉤子只針對常規帖子,我們的 ID 不會顯示在頁面或其他元素中。

實際上,這些鉤子被稱為變量鉤子,因為它們屬於一個標準化的集合。 常見的形式是: manage_[post_type_or_element]_columnsmanage_[post_type_or_element]_custom_column

基於此,帖子、頁面、媒體和自定義帖子類型應該很容易,因為這些都是帖子類型。 要為所有這些元素顯示 ID,您可以使用以下鉤子:

加載要點 f5d3a74815180d6caae226de135a8421

這裡有一個小警告:除了帖子和頁面之外的所有內容都使用帖子類型。 帖子的帖子類型在技術上是“帖子”,頁面的帖子類型是“頁面”。 由於某種原因,鉤子使用複數形式。 這是一個 WordPress 怪癖,因為它確實應該是單數形式。 看,即使是 WordPress 核心也不完美。

我在那裡添加了一個自定義帖子類型:項目。 如果您想將此應用於所有自定義帖子類型怎麼辦? 在這種情況下,您可以像這樣輕鬆地循環所有這些:

加載要點 fa188e0650ab09cc1acb796165d88864

在處理分類法時,我建議使用相同的方法。 要僅輸出類別的 ID,您可以使用manage_edit-link-categories_columnsmanage_link_categories_custom_column但要將其添加到所有分類法中,我們需要使用另一個循環:

加載要點 6d2ebe47188e8599eb3b0fe3527d4860

最後但同樣重要的是,我們有用戶和評論。 這些也相當簡單。 看一看:

加載要點 96c1e364e6f29421d38595c509b53536

將身份證放在前面

這個小小的改變比看起來要困難一些。 當我們添加 ID 列時,我們將其附加到包含所有其他列的現有數組的末尾。 解決方案似乎很簡單:將其添加到前面。 我們可以通過合併數組來做到這一點,但事實證明復選框是第一列——我們實際上希望 ID 排在第二位。

我們仍將使用數組合併,但我們需要更多技巧——我們需要先將其拆分。 第一個數組將包含複選框(原始數組的第一個元素),第二個數組將包含其他所有內容。 我們將第一個數組與包含我們 ID 的數組合併,然後與第二個數組合併。 代碼應該使這一點更清晰:

加載要點 ceb06c8dd27458696ebb4d89358eeda3

結論

我認為這是 WordPress 模塊化的一個很好的例子。 ID 曾經顯示在管理員中(WordPress 2.5 之前),但事實證明沒有多少人需要它們。 刪除此功能後,插件應運而生,以迎合那些仍想查看帖子 ID 的人。

編寫我們自己的插件可以一瞥 WordPress 的模塊化程度以及修改管理員本身的容易程度。 上面概述的相同方法可用於將縮略圖、描述片段和其他信息添加到管理列表中。

如果您在管理員列表中添加了一些很棒的東西,或者您希望看到添加到其中的想法,請在下面的評論中告訴我們。
標籤: