在WordPress中添加元框
WordPress網站建設者或開發者經常會用到元框(Meta Boxes)。本文將深入探討元框與自定義文章類型的關聯和集成,以及如何在WordPress前端使用元框中保存的數據。
核心要點
- 使用
add_meta_box()
函數(掛載到add_meta_boxes
動作)可以將元框添加到任何文章類型的編輯界面。此函數可用於將元框添加到多個文章類型(如文章、頁面和自定義文章類型“書籍”),或添加到所有現有及未來創建的文章類型。 - 通過將文章類型名稱附加到
add_meta_boxes
動作鉤子,可以將元框限制在特定文章類型。register_post_type()
函數用於自定義文章類型,其參數數組包含register_meta_box_cb
,其值為在設置元框時調用的回調函數。 -
global_notice_meta_box_callback
函數包含元框的表單字段。save_post
動作鉤子處理在將文章保存為草稿或發佈時保存到文本區域的數據。通過在保存對應文章內容之前顯示元框輸入的數據,可以將這些數據有效利用。
將元框添加到文章類型屏幕
Narayan Prusty已涵蓋了創建元框的大多數(如果不是全部)PHP函數、參數和動作鉤子。
要將元框添加到任何文章類型的編輯屏幕,可以使用add_meta_box()
函數並將其掛接到add_meta_boxes
動作。
以下代碼將元框添加到文章編輯屏幕。請注意global_notice_meta_box_callback
函數,該函數用於顯示元框中的表單字段。稍後我們將詳細介紹。
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', 'post' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
要將元框添加到多個文章類型屏幕(文章、頁面和自定義文章類型“書籍”),請創建一個文章類型數組,遍歷該數組,並使用add_meta_box()
將其添加到這些文章類型中。
function global_notice_meta_box() { $screens = array( 'post', 'page', 'book' ); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
要將元框添加到所有現有及未來創建的文章類型,請使用get_post_types()
獲取文章類型數組,然後用它替換上面的$screen
值。
function global_notice_meta_box() { $screens = get_post_types(); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
也可以通過省略第三個($screen
)參數來將元框添加到所有現有和新的文章類型:
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
還可以通過將文章類型名稱(本例中為“book”)附加到add_meta_boxes
動作鉤子來限制元框到特定文章類型:
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
register_post_type()
函數用於自定義文章類型,其參數數組中包含register_meta_box_cb
,其值為在設置元框時調用的回調函數。
假設我們使用以下代碼創建了一個名為“book”的自定義文章類型:
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', 'post' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
在global_notice_meta_box
PHP 函數(上面register_meta_box_cb
的值)中添加add_meta_box()
函數定義將把元框添加到“book”自定義文章類型的編輯屏幕。
再次強調,這是我們的示例global_notice_meta_box
函數。
function global_notice_meta_box() { $screens = array( 'post', 'page', 'book' ); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
到目前為止,我們已經學習了在WordPress中註冊或添加元框的各種方法。我們還需要創建global_notice_meta_box_callback
函數,該函數將包含我們元框的表單字段。
以下是global_notice_meta_box_callback
函數的代碼,該函數將在元框中包含一個文本區域字段。
function global_notice_meta_box() { $screens = get_post_types(); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
save_post
動作鉤子處理在將文章保存為草稿或發佈時保存到文本區域的數據。
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
為了使用在元框文本區域中輸入的數據,我們將在顯示其保存對應文章內容之前顯示該數據。
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
代碼解釋
首先,我們創建了一個global_notice_before_post
函數,並將其掛接到the_content
過濾器,該過濾器帶有一個$content
參數,其中包含文章內容。
在函數內部,我們包含了全局$post
變量,該變量包含當前正在查看的文章的WP_Post對象。
通過get_post_meta
檢索針對給定文章保存的全局公告,並將其保存到$global_notice
變量中。
然後將公告包裝在一個div中並保存到$notice
變量中。
最後,將包含全局公告的$notice
與包含實際文章內容的$content
連接起來。
以下是帶有文章內容之前的全局公告的文章屏幕截圖。
總結
在本教程中,我們學習了在WordPress管理屏幕中註冊元框的多種方法,以及如何將它們限制在文章類型中。
我們還回顧瞭如何向元框添加表單字段,以及如何在保存或發布文章時保存輸入的數據。
最後,我們介紹瞭如何將輸入到元框中的數據付諸實踐。
在未來的文章中,我們將介紹如何向文章類型管理屏幕添加上下文幫助選項卡。
如果您有任何問題或建議,歡迎在評論中提出。
WordPress中向文章類型添加元框的常見問題
-
什麼是WordPress中的元框? WordPress中的元框是在管理界面中顯示的可拖動框。這些框用於顯示附加的輸入字段,允許用戶自定義不同類型文章的功能和佈局。它們可以添加到文章、頁面和自定義文章類型。元框可以包含各種類型的字段,包括文本、複選框、選擇選項等等。
-
如何在WordPress中向自定義文章類型添加元框? 要向WordPress中的自定義文章類型添加元框,需要使用
add_meta_box()
函數。此函數允許您指定元框ID、標題、回調函數、文章類型、上下文和優先級。回調函數用於輸出元框的內容。 -
我能否向單個文章類型添加多個元框? 可以。每個元框都應具有唯一的ID,以避免衝突。您可以多次使用
add_meta_box()
函數並使用不同的參數來添加多個元框。 -
如何保存輸入到元框字段中的數據? 要保存輸入到元框字段中的數據,需要將一個函數掛接到
save_post
動作。此函數應檢查nonce,驗證當前用戶的權限,然後使用update_post_meta()
或add_post_meta()
函數將元框數據保存到數據庫。 -
如何在前端顯示元框數據? 要在前端顯示元框數據,可以在循環中使用
get_post_meta()
函數。此函數從數據庫檢索元框數據並將其作為字符串返回,然後您可以在模板文件中將其輸出。 -
我能否將元框添加到頁面以及文章? 可以。使用
add_meta_box()
函數時,可以將文章類型指定為“page”以向頁面添加元框。 -
如何從文章類型中刪除元框? 可以使用
remove_meta_box()
函數。此函數需要元框ID和文章類型作為參數。 -
我能否自定義元框在文章編輯屏幕中的位置? 可以。
add_meta_box()
函數的context
參數決定了元框的位置。可能的值為“normal”、“side”和“advanced”。 -
我能否將元框添加到插件創建的自定義文章類型? 可以。您只需要知道自定義文章類型的slug,然後將其用作
add_meta_box()
函數中的post_type
參數。 -
如何設置元框及其字段的樣式? 可以使用CSS設置元框及其字段的樣式。元框將具有“postbox”類,您可以向元框中的字段添加您自己的類。然後,您可以在CSS中定位這些類以應用樣式。
以上是在WordPress中添加元框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

最近,我們向您展示瞭如何通過允許用戶將自己喜歡的帖子保存在個性化庫中來為用戶創建個性化體驗。您可以通過在某些地方(即歡迎屏幕)使用他們的名字,將個性化結果提升到另一個水平。幸運的是,WordPress使獲取登錄用戶的信息變得非常容易。在本文中,我們將向您展示如何檢索與當前登錄用戶相關的信息。我們將利用get_currentuserinfo(); 功能。這可以在主題中的任何地方使用(頁眉、頁腳、側邊欄、頁面模板等)。為了使其工作,用戶必須登錄。因此我們需要使用

有四種方法可以調整 WordPress 文章列表:使用主題選項、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設置)或直接修改 WordPress 數據庫。

博客是人們在網上表達觀點、意見和見解的理想平台。許多新手渴望建立自己的網站,卻因擔心技術障礙或成本問題而猶豫不決。然而,隨著平台不斷發展以滿足初學者的能力和需求,現在開始變得比以往任何時候都更容易。 本文將逐步指導您如何建立一個WordPress博客,從主題選擇到使用插件提升安全性和性能,助您輕鬆創建自己的網站。 選擇博客主題和方向 在購買域名或註冊主機之前,最好先確定您計劃涵蓋的主題。個人網站可以圍繞旅行、烹飪、產品評論、音樂或任何激發您興趣的愛好展開。專注於您真正感興趣的領域可以鼓勵持續寫作

您想了解如何在父分類存檔頁面上顯示子分類嗎?在自定義分類存檔頁面時,您可能需要執行此操作,以使其對訪問者更有用。在本文中,我們將向您展示如何在父分類存檔頁面上輕鬆顯示子分類。為什麼在父分類存檔頁面上顯示子分類?通過在父分類存檔頁面上顯示所有子分類,您可以使其不那麼通用,對訪問者更有用。例如,如果您運行一個關於書籍的WordPress博客,並且有一個名為“主題”的分類法,那麼您可以添加“小說”、“非小說”等子分類法,以便您的讀者可以

過去,我們分享過如何使用PostExpirator插件使WordPress中的帖子過期。好吧,在創建活動列表網站時,我們發現這個插件非常有用。我們可以輕鬆刪除過期的活動列表。其次,多虧了這個插件,按帖子過期日期對帖子進行排序也非常容易。在本文中,我們將向您展示如何在WordPress中按帖子過期日期對帖子進行排序。更新了代碼以反映插件中更改自定義字段名稱的更改。感謝Tajim在評論中讓我們知道。在我們的特定項目中,我們將事件作為自定義帖子類型。現在

要使用 WordPress 主機建站,需要:選擇一個可靠的主機提供商。購買一個域名。設置 WordPress 主機帳戶。選擇一個主題。添加頁面和文章。安裝插件。自定義您的網站。發布您的網站。

您是否正在尋找自動化 WordPress 網站和社交媒體帳戶的方法? 通過自動化,您將能夠在 Facebook、Twitter、LinkedIn、Instagram 等平台上自動分享您的 WordPress 博客文章或更新。 在本文中,我們將向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 輕鬆實現 WordPress 和社交媒體的自動化。 為什麼要自動化 WordPress 和社交媒體? 自動化您的WordPre

我們的一位用戶詢問其他網站如何在頁腳中顯示查詢數量和頁面加載時間。您經常會在網站的頁腳中看到這一點,它可能會顯示類似以下內容:“1.248秒內64個查詢”。在本文中,我們將向您展示如何在WordPress中顯示查詢數量和頁面加載時間。只需將以下代碼粘貼到主題文件中您喜歡的任何位置(例如footer.php)。 queriesin
