搜尋
首頁CMS教程&#&按使用設置API創建WP主題設置頁面

使用設置API創建WP主題設置頁面

鑰匙要點

    WordPress設置API是創建主題設置頁面的流行工具,可以自定義功能,行為和样式,而無需直接編輯PHP或CSS文件。這使更新主題更加容易,並防止用戶所做的更改丟失。
  • >
  • 設置API允許自定義選項,例如社交配置文件,靜態或響應佈局之間的選擇以及徽標上傳。這些功能可以使用add_settings_section,add_settings_field和register_setting等函數添加。
  • >使用設置API創建的設置可以使用get_option()函數在前端檢索,因為設置API使用選項API在內部存儲值。這使得易於訪問和利用主題中的自定義設置。
  • >
  • >大多數WordPress主題都有一個主題設置頁面來自定義其功能,行為和样式。使用主題提供主題設置頁面,使您的用戶可以輕鬆自定義主題,而不是直接編輯PHP或CSS文件。這使更新主題更加容易,因為用戶不會丟失他們所做的更改。 在本教程中,我們將學習創建主題設置頁面的“ WordPress”推薦方法,即使用WordPress設置API。 WordPress設置API是在WordPress 2.7中添加的,此後已成為最受歡迎的WordPress API之一。如果您打算在WordPress插件中添加設置頁面,則本教程也將很有用。讓我們開始。

我們將在主題設置頁面中包括什麼?

> 主題設置頁面中的

選項取決於主題支持的功能和自定義。也就是說,每個主題設置頁面中都有一些常見的內容。一些常見的選擇是:社交網址,靜態或響應式佈局和標頭徽標,僅舉幾例。在本教程中,我將向您展示如何在我們的主題設置頁面中包含這四個選項。

>

創建一個主題設置頁菜單項

首先,我們必須在管理面板上創建一個菜單項,該菜單項將訪問我們的主題設置頁面。

>我們可以使用WordPress菜單API創建菜單項。這是創建菜單項的代碼。

>

>在這裡,主題面板是代表我們菜單項的唯一ID。 them_settings_page是顯示菜單API創建的頁面內容的回調。我們將接下來對此功能進行編碼。

這是外觀。
<span>function theme_settings_page(){}
</span>
<span>function add_theme_menu_item()
</span><span>{
</span>	<span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99);
</span><span>}
</span>
<span>add_action("admin_menu", "add_theme_menu_item");</span>

設置api

的概述

>設置API用於填充菜單項API創建的頁面。設置頁面分為各節和字段。 使用設置API創建WP主題設置頁面 為了本教程,我們將創建一個部分,並將所有字段都放在該部分中。

這是theme_settings_page函數的代碼以創建一個部分並添加提交按鈕。

<span>function theme_settings_page(){}
</span>
<span>function add_theme_menu_item()
</span><span>{
</span>	<span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99);
</span><span>}
</span>
<span>add_action("admin_menu", "add_theme_menu_item");</span>

>在這裡,我們使用ID部分使用settings_field註冊一個部分。主題選項是屬於部分的所有字段的組ID。最後,submit_button()函數迴盪了我們主題設置頁面的提交按鈕。

這是應該看起來的樣子。

使用設置API創建WP主題設置頁面

添加社交資料URL

現在,讓我們在設置頁面中添加字段以存儲我們的Facebook和Twitter個人資料URL。幾乎每個WordPress主題都有社交個人資料選項,因此這是一個方便,實用的例子。

這是使用設置API添加輸入文本字段的代碼。

初始化管理面板後,我們將註冊各節和字段顯示回調。在這裡,我們使用了三個重要功能:
function theme_settings_page()
{
    ?>
	    <span><span><span><div> class<span>="wrap"</span>>
	    <span><span><span><h1 id="gt">></h1></span>Theme Panel<span><span></span>></span>
</span>	    <span><span><span><form> method<span>="post"</span> action<span>="options.php"</span>></form></span>
</span>	        <span><span><?php </span></span><span>	            <span>settings_fields("section");
</span></span><span>	            <span>do_settings_sections("theme-options");      
</span></span><span>	            <span>submit_button(); 
</span></span><span>	        <span>?></span>          
</span>	    <span><span><span></span>></span>
</span>		<span><span><span></span></span></span></span></span></span>
</div></span>></span>
</span>	<span><span><?php </span></span><span><span>}</span></span></span>

add_settings_section用於顯示部分標題和描述。
    >
  1. add_settings_field用於顯示字段的HTML代碼。
  2. register_setting被調用以自動保存字段值。
  3. 這是我們的設置頁面現在的樣子。
  4. >

>我們現在已經看到瞭如何使用我們的設置頁面添加輸入文本字段。讓我們來看看如何通過在靜態或響應式佈局之間進行選擇來添加複選框。

> 使用設置API創建WP主題設置頁面添加選項以在佈局之間進行選擇

>讓我們看看如何擴展display_theme_panel_fields函數以顯示一個複選框以在佈局之間進行選擇。

這是實現此目的的代碼。

>

>我們使用add_settings_field添加了一個新的設置字段,並像往常一樣使用register_settings進行了註冊。要注意的一件事,如果我們想確定用戶是否已選中了複選框,我們正在使用checked()函數。

>
function display_twitter_element()
{
	?>
    	<span><span><span><input> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span>
</span>    <span><span><?php </span></span><span><span>}
</span></span><span>
</span><span><span>function display_facebook_element()
</span></span><span><span>{
</span></span><span>	<span>?></span>
</span>    	<span><span><span><input> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span>
</span>    <span><span><?php </span></span><span><span>}
</span></span><span>
</span><span><span>function display_theme_panel_fields()
</span></span><span><span>{
</span></span><span>	<span>add_settings_section("section", "All Settings", null, "theme-options");
</span></span><span>	
</span><span>	<span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section");
</span></span><span>    <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section");
</span></span><span>
</span><span>    <span>register_setting("section", "twitter_url");
</span></span><span>    <span>register_setting("section", "facebook_url");
</span></span><span><span>}
</span></span><span>
</span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span></span></span></span></span>
checked()函數將一個值與另一個值進行比較,如果它們是相等的,則它會迴盪一個檢查屬性,否則什麼都不是。

這是我們的設置頁面現在的外觀。

上傳徽標

>

這是在我們的設置頁面上上傳徽標的代碼。

>

>在這裡,我們使用wp_handle_upload來存儲圖像文件並檢索其URL並將其作為選項存儲。

這是我們的設置頁面現在的外觀,它很好地塑造了!
function display_twitter_element()
{
	?>
    	<span><span><span><input> type<span>="text"</span> name<span>="twitter_url"</span> id<span>="twitter_url"</span> value<span>="<span><?php echo get_option('twitter_url'); ?></span>"</span> /></span>
</span>    <span><span><?php </span></span><span><span>}
</span></span><span>
</span><span><span>function display_facebook_element()
</span></span><span><span>{
</span></span><span>	<span>?></span>
</span>    	<span><span><span><input> type<span>="text"</span> name<span>="facebook_url"</span> id<span>="facebook_url"</span> value<span>="<span><?php echo get_option('facebook_url'); ?></span>"</span> /></span>
</span>    <span><span><?php </span></span><span><span>}
</span></span><span>
</span><span><span>function display_layout_element()
</span></span><span><span>{
</span></span><span>	<span>?></span>
</span>		<span><span><span><input> type<span>="checkbox"</span> name<span>="theme_layout"</span> value<span>="1"</span> <span><span><?php checked(1, get_option('theme_layout'), true); ?></span></span> /></span> 
</span>	<span><span><?php </span></span><span><span>}
</span></span><span>
</span><span><span>function display_theme_panel_fields()
</span></span><span><span>{
</span></span><span>	<span>add_settings_section("section", "All Settings", null, "theme-options");
</span></span><span>	
</span><span>	<span>add_settings_field("twitter_url", "Twitter Profile Url", "display_twitter_element", "theme-options", "section");
</span></span><span>    <span>add_settings_field("facebook_url", "Facebook Profile Url", "display_facebook_element", "theme-options", "section");
</span></span><span>    <span>add_settings_field("theme_layout", "Do you want the layout to be responsive?", "display_layout_element", "theme-options", "section");
</span></span><span>
</span><span>    <span>register_setting("section", "twitter_url");
</span></span><span>    <span>register_setting("section", "facebook_url");
</span></span><span>    <span>register_setting("section", "theme_layout");
</span></span><span><span>}
</span></span><span>
</span><span><span>add_action("admin_init", "display_theme_panel_fields");</span></span></span></span></span></span></span></span>
>使用設置API創建WP主題設置頁面

>檢索設置

>主題需要檢索前端的設置值。設置API使用選項API在內部存儲值。因此,您可以使用get_option()函數檢索值。

>

非常簡單,這是代碼。

>
<span>function theme_settings_page(){}
</span>
<span>function add_theme_menu_item()
</span><span>{
</span>	<span>add_menu_page("Theme Panel", "Theme Panel", "manage_options", "theme-panel", "theme_settings_page", null, 99);
</span><span>}
</span>
<span>add_action("admin_menu", "add_theme_menu_item");</span>

結論

在本文中,我們看到瞭如何使用設置API輕鬆創建主題設置頁面。我們創建了一個文本,文件和復選框輸入字段,以各種數據格式獲取輸入。繼續嘗試擴展頁面並自己添加更多表單控件。

>

>關於創建WordPress主題設置頁面的常見問題(FAQ)

> WordPress設置API是什麼,為什麼重要?這很重要,因為它提供了一種標準化且安全的處理數據的方式。它還可以確保您的主題或插件與WordPress生態系統兼容,從而使用戶更容易從WordPress管理區域管理設置。

>如何在WordPress主題設置頁面中添加新部分? 🎜>

>要在WordPress主題設置頁面中添加新部分,您需要使用add_settings_section()函數。此功能採用三個參數:本節的ID,部分標題和輸出部分內容的回調函數。 ID應該是唯一的,以避免與其他部分發生衝突。

>如何在WordPress中註冊設置?

在WordPress中註冊設置,您可以使用register_setting()函數。此功能採用三個參數:選項組,選項名稱和定義設置的參數數組。選項組應匹配settings_fields()函數中使用的組,並且該選項名稱是要保存在數據庫中的選項的名稱。

>如何為設置創建一個表單字段? >

>要為您的設置創建一個表單字段,您可以使用add_settings_field()函數。此功能採用多個參數,包括字段的ID,字段標題,輸出表單字段的回調函數,應顯示字段的頁面,應添加字段的部分以及一系列參數對於字段。

如何驗證和消毒我的設置?

以驗證和消毒您的設置,您可以在register_setting()函數中使用sanitize_callback參數。該參數應該是一個回調函數,該函數獲取輸入數據,驗證並對其進行消毒,然後返回消毒數據。這樣可以確保僅保存在數據庫中。 >

>如何在“設置”頁面上顯示我的設置?

在“設置”頁面上顯示您的設置,您可以使用setters_fields()和do_settings_sections()函數使用settings_fields()和do_settings_sections()函數。 settings_fields()函數輸出設置頁面的nonce,操作和選項頁面字段,而do_settings_sections()函數輸出添加到頁面上的部分和字段。 ?

為了將設置保存在WordPress中,您需要在設置頁面上提交表單。提交表單後,WordPress會使用register_setting()函數自動保存設置。您還可以使用update_option()函數手動保存設置。

>如何在wordpress中檢索我的設置?

在WordPress中檢索您的設置,您可以使用get_option()功能。此功能將選項的名稱作為參數,並返回選項的值。如果該選項不存在,它將返回一個默認值,您可以將其指定為第二個參數。

>

>如何在WordPress中刪除我的設置? >我如何對設置頁面的問題進行故障排除?

>

以對設置頁面的問題進行故障排除,您可以使用提供的各種調試工具由WordPress。例如,您可以使用wp_debug常數來啟用調試模式並顯示PHP錯誤,通知和警告。您還可以使用var_dump()函數來輸出變量的值,並查看正在處理哪些數據。

>

以上是使用設置API創建WP主題設置頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
WordPress開發的5個最佳ID(以及原因)WordPress開發的5個最佳ID(以及原因)Mar 03, 2025 am 10:53 AM

我為WordPress開發選擇了正確的綜合開發環境(IDE)十年後,我探索了WordPress開發的眾多集成開發環境(IDE)。 純粹的品種 - 從免費到商業,基本到FEA

使用OOP技術創建WordPress插件使用OOP技術創建WordPress插件Mar 06, 2025 am 10:30 AM

本教程演示了使用面向對象的編程(OOP)原理構建WordPress插件,利用Dribbble API。 讓我們在保留原始含義和結構的同時完善文本以清晰和簡潔。 object-ori

如何將PHP數據和字符串傳遞給WordPress中的JavaScript如何將PHP數據和字符串傳遞給WordPress中的JavaScriptMar 07, 2025 am 09:28 AM

將PHP數據傳遞給JavaScript的最佳實踐:WP_LOCALIZE_SCRIPT和WP_ADD_INLINE_SCRIPT的比較是PHP文件中靜態字符串中數據存儲數據的最佳實踐。 如果在您的JavaScript代碼中需要此數據,請合併

如何使用WordPress插件嵌入和保護PDF文件如何使用WordPress插件嵌入和保護PDF文件Mar 09, 2025 am 11:08 AM

本指南演示瞭如何使用WordPress PDF插件在WordPress帖子和頁面中嵌入和保護PDF文件。 PDFS為從目錄到演示文稿提供了一種用戶友好的,普遍訪問的格式。 此方法ENS

對於初學者來說,WordPress容易嗎?對於初學者來說,WordPress容易嗎?Apr 03, 2025 am 12:02 AM

WordPress對初學者來說容易上手。 1.登錄後台後,用戶界面直觀,簡潔的儀表板提供所有必要功能鏈接。 2.基本操作包括創建和編輯內容,所見即所得的編輯器簡化了內容創建。 3.初學者可以通過插件和主題擴展網站功能,學習曲線存在但可以通過實踐掌握。

為什麼有人會使用WordPress?為什麼有人會使用WordPress?Apr 02, 2025 pm 02:57 PM

人們選擇使用WordPress是因為其強大和靈活性。 1)WordPress是一個開源的CMS,易用性和可擴展性強,適合各種網站需求。 2)它有豐富的主題和插件,生態系統龐大,社區支持強大。 3)WordPress的工作原理基於主題、插件和核心功能,使用PHP和MySQL處理數據,支持性能優化。

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

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

Safe Exam Browser

Safe Exam Browser

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版