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

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

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

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

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

熱門話題

使用Git管理WordPress項(xiàng)目時(shí),應(yīng)只將主題、自定義插件和配置文件納入版本控制;設(shè)置.gitignore文件以忽略上傳目錄、緩存和敏感配置;利用webhook或CI工具實(shí)現(xiàn)自動(dòng)部署並註意數(shù)據(jù)庫處理;採用兩分支策略(main/develop)進(jìn)行協(xié)作開發(fā)。這樣做可避免衝突、保障安全,並提升協(xié)作與部署效率。

使用WordPress測(cè)試環(huán)境是為了確保新功能、插件或主題在正式上線前的安全性和兼容性,避免影響真實(shí)網(wǎng)站。搭建測(cè)試環(huán)境的步驟包括:下載安裝本地服務(wù)器軟件(如LocalWP、XAMPP),創(chuàng)建站點(diǎn)、設(shè)置數(shù)據(jù)庫和管理員賬號(hào),安裝主題和插件進(jìn)行測(cè)試;複製正式網(wǎng)站到測(cè)試環(huán)境的方法是通過插件導(dǎo)出站點(diǎn)、導(dǎo)入測(cè)試環(huán)境並替換域名;使用時(shí)應(yīng)注意不使用真實(shí)用戶數(shù)據(jù)、定期清理無用數(shù)據(jù)、備份測(cè)試狀態(tài)、適時(shí)重置環(huán)境,並統(tǒng)一團(tuán)隊(duì)配置以減少差異問題。

創(chuàng)建Gutenberg塊的關(guān)鍵在於理解其基本結(jié)構(gòu)並正確連接前後端資源。 1.準(zhǔn)備開發(fā)環(huán)境:安裝本地WordPress、Node.js和@wordpress/scripts;2.使用PHP註冊(cè)塊並用JavaScript定義塊的編輯和顯示邏輯;3.通過npm構(gòu)建JS文件以使更改生效;4.遇到問題時(shí)檢查路徑、圖標(biāo)是否正確或使用實(shí)時(shí)監(jiān)聽構(gòu)建避免重複手動(dòng)編譯。按照這些步驟,可以逐步實(shí)現(xiàn)一個(gè)簡單的Gutenberg塊。

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)後,需手動(dòng)刷新重寫規(guī)則,此時(shí)可通過代碼調(diào)用flush_rewrite_rules()函數(shù)實(shí)現(xiàn)。 1.可在主題或插件激活鉤子中添加該函數(shù)以自動(dòng)刷新;2.僅在必要時(shí)執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)後;3.避免頻繁調(diào)用以免影響性能;4.多站點(diǎn)環(huán)境下需視情況為每個(gè)站點(diǎn)單獨(dú)刷新;5.某些託管環(huán)境可能限制規(guī)則保存。此外,訪問“設(shè)置>固定鏈接”頁麵點(diǎn)擊保存也可觸髮刷新,適合非自動(dòng)化場(chǎng)景。

要實(shí)現(xiàn)響應(yīng)式WordPress主題設(shè)計(jì),首先要使用HTML5和移動(dòng)優(yōu)先的Meta標(biāo)籤,在header.php中添加viewport設(shè)置以確保移動(dòng)端正確顯示,並用HTML5結(jié)構(gòu)標(biāo)籤組織佈局;其次,利用CSS媒體查詢實(shí)現(xiàn)不同屏幕寬度下的樣式適配,按移動(dòng)優(yōu)先原則編寫樣式,常用斷點(diǎn)包括480px、768px和1024px;第三,彈性處理圖片和佈局,為圖片設(shè)置max-width:100%並使用Flexbox或Grid佈局替代固定寬度;最後,通過瀏覽器開發(fā)者工具和真實(shí)設(shè)備進(jìn)行充分測(cè)試,優(yōu)化加載性能,確保響應(yīng)

tosetupredirectsinwordpressingthe.htaccessfile,locateThEfileInyourSite'sRootDirectorectoryAndDrectRectrulesabovethe#beginWordPresssection.forbasic301redirects,USETHEETHEETERECTREFTATRECTATREDERTREFTATREDERTREFTATRECTRECTATRECTRECTATREDECT301/OLD-PAGEHTTPS:

UsingsMtpForWordPresseMailSimProvesDeliverabilitialComparedComparedTothEdeDefaultPhpMail()函數(shù).1.smtpauthenticateswithyouremailserver.2.somemomehostsdisablesablephpmail()

TOINTEGRATETHIRD-PARTYAPISINTOWORDPRESS,關(guān)注臺(tái)詞:1.SelectAutableabepianDobtainCredentialslikeapikeYsoroAuthtoKensByEnterRegisteringThemSecure.2.ChooseBeteBetB????eteBetB????eteBetB????etebetInpliCityOorcustimplicityOrcustomPliCoseTompliCoseTomploomcoseusionfunctionfunctionfunctibunitiacuciencipuity forfunigation。
