搜尋
首頁CMS教程&#&按在WordPress中添加元框

Adding Meta Boxes to Post Types in 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' );

Adding Meta Boxes to Post Types in WordPress 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連接起來。

以下是帶有文章內容之前的全局公告的文章屏幕截圖。

Adding Meta Boxes to Post Types in WordPress

總結

在本教程中,我們學習了在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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
5個WordPress插件,供開發人員在2025年使用5個WordPress插件,供開發人員在2025年使用Apr 27, 2025 am 08:25 AM

2025年網站開發的七個必備WordPress插件 在2025年建立頂級WordPress網站需要速度,響應能力和可擴展性。 實現這種有效的實現通常取決於戰略插件的選擇。 這篇文章Highlig

您將使用WordPress做什麼?您將使用WordPress做什麼?Apr 27, 2025 am 12:14 AM

WordPresscanbeusedforvariouspurposesbeyondblogging.1)E-commerce:WithWooCommerce,itcanbecomeafullonlinestore.2)Membershipsites:PluginslikeMemberPressenableexclusivecontentareas.3)Portfoliosites:ThemeslikeAstraallowstunninglayouts.Ensuretomanageplugins

WordPress適合創建投資組合網站嗎?WordPress適合創建投資組合網站嗎?Apr 26, 2025 am 12:05 AM

是的,wordpressisisexcellentforcortingaportfoliowebsite.1)itoffersnumeroversnumeroverportfolio-spificthemeslike'astra'astra'astra'astra'astra'astra'astra'astra'astra'elementor'Enelementor'enableIntiviveSiveSign,Thoughtemanycanslowthesite.3)

使用WordPress而不是從頭開始編碼網站的優點是什麼?使用WordPress而不是從頭開始編碼網站的優點是什麼?Apr 25, 2025 am 12:16 AM

WordPressisadvantageousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment,2)flexibilityandscalability,3)strongcommunitysupport,4)built-inSEOandmarketingtools,5)cost-effectiveness,and6)regularsecurityupdates.Thesefeaturesallowforquicke

是什麼使WordPress成為內容管理系統?是什麼使WordPress成為內容管理系統?Apr 24, 2025 pm 05:25 PM

WordPressIsAcmsDuetoItseAsofuse,自定義,USERMANAMECTION,SEO和COMMUNITYSUPPORT.1)ITSIMPLIFIESCONTENTMANGAMEWITHANINTUISIDERFEEFFECE.2)提供extentensiveCustomizationThroughThroughTheMesandPlugins.3)supportrobustuserrolesandplugins.4)supportrobustuserrolesandpermissions.4)增強

wordpress怎麼加評論框wordpress怎麼加評論框Apr 20, 2025 pm 12:15 PM

在 WordPress 網站上啟用評論功能,可以為訪客提供參與討論和分享反饋的平台。為此,請按照以下步驟操作:啟用評論:在儀錶盤中,導航至“設置”>“討論”,並選中“允許評論”複選框。創建評論表單:在編輯器中,單擊“添加塊”並蒐索“評論”塊,將其添加到內容中。自定義評論表單:通過設置標題、標籤、佔位符和按鈕文本來定制評論塊。保存更改:單擊“更新”以保存評論框並將其添加到頁面或文章中。

wordpress怎麼複製子站wordpress怎麼複製子站Apr 20, 2025 pm 12:12 PM

如何復制 WordPress 子站?步驟:在主站創建子站。在主站克隆子站。將克隆導入目標位置。更新域名(可選)。分開插件和主題。

wordpress怎麼寫頁頭wordpress怎麼寫頁頭Apr 20, 2025 pm 12:09 PM

在WordPress中創建自定義頁頭的步驟如下:編輯主題文件“header.php”。添加您的網站名稱和描述。創建導航菜單。添加搜索欄。保存更改並查看您的自定義頁頭。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。