WordPress為主題開發人員提供定制器API。這是一組乾淨,面向對象的方法集,可促進創建一致的自定義接口。在自定義面板上,用戶可以輕鬆地進行更改並進行實時瀏覽,而無需與PHP或CSS代碼混亂。
>使用Customizer API開發主題選項,同時是一個直接且合乎邏輯的過程,涉及編寫一定數量的重複代碼。為了減少構建功能和安全定制選項所需的一些步驟,Aristeides Stathopoulos一直在開發免費的開源插件Kirki。在這篇文章中,我將展示如何將Kirki集成到您的WordPress主題中,以及如何使用它來構建一些定制器選項。
鑰匙要點
Kirki通過提供更簡單的語法和高級功能來增強WordPress Customizer API,從而使開發人員可以使用更少的代碼編寫更多。
>
>如果您希望將Kirki作為庫中包含在主題中,請按照以下概述的步驟操作。
通過將此行添加到functions.php(確保您調整到Kirki文件夾的路徑以匹配您的主題的文件結構),將此行添加到functions.php(確保將此行添加到functions.php中)使您的主題“談話”與Kirki進行“交談”。
添加一個函數以包含Kirki配置選項,然後將其連接到Kirki/Config Felter。這取決於您要添加到此功能的內容。在這篇文章中,讓我們通過添加代碼Kirki需求以“了解”其新位置,即主題文件夾而不是插件文件夾。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
定制器選項現場直播,該部分位於面板內部。在本文的演示項目中,我使用本機定制方法將所有部分分組在專用面板中,例如so。
><span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
接下來,通過將此代碼放置在上一個ADD_PANEL自定義方法下方,分別將此代碼放置在網站文本顏色,站點佈局和頁腳文本選項中添加部分。
<span>function superminimal_customizer_config() { </span> <span>$args = array( </span> <span>// Only use this if you are bundling the plugin with your theme </span> <span>'url_path' => get_stylesheet_directory_uri() . '/inc/kirki/', </span> <span>); </span> <span>return $args; </span> <span>} </span> <span>add_filter( 'kirki/config', 'superminimal_customizer_config' );</span>
現在,您準備添加第一個Kirki驅動的選項。
>>您所有與選項相關的代碼都將放置在功能中。然後通過Kirki/Fields濾波器過濾此功能。
<span>function superminimal_demo_panels_sections( $wp_customize ) { </span> <span>/** </span><span> * Add Panel </span><span> */ </span> <span>$wp_customize->add_panel( 'sitepoint_demo_panel', array( </span> <span>'priority' => 10, </span> <span>'title' => __( 'SitePoint Demo Panel', 'superminimal' ), </span> <span>'description' => __( 'Kirki integration for SitePoint demo', 'superminimal' ), </span> <span>) ); </span> <span>//More code to come </span> <span>} </span> <span>add_action( 'customize_register', 'superminimal_demo_panels_sections' );</span>
>讓您給您的WordPress主題用戶一種更簡單的更改文本顏色的方法。 Kirki很快就完成了。在返回$字段上方的Superminimal_demo_fields()函數中添加以下代碼片段;陳述。
<span>/** </span><span> * Add a Section for Site Text Colors </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_text_colors', array( </span> <span>'title' => __( 'Site Text Colors', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Site Layout </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_site_layout', array( </span> <span>'title' => __( 'Site Layout', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Footer Text </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_footer_text', array( </span> <span>'title' => __( 'Footer Text', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) );</span>
>讓我們分解$ fields [] array。
>
>站點佈局選項
Kirki提供了許多複雜的定制器控件。 我最喜歡的是無線電圖像控件。
>將代碼放在上面的$ fields []陣列代碼段之後。請注意,如何將輸出參數添加到代碼中。之所以如此,是因為每個無線電圖像輸入的值不是CSS屬性值。
>您可以通過本機Customizer get_theme_mod方法從superminimal_layout設置提取值的方式。然後,您將該值用作模板文件中合適的HTML元素的類屬性值。最後,這只是編寫適當的CSS的問題,以實現您的樣式表中的.fullwidth,Sidebar-Left和.sidebar-Right類的所需佈局。
>查看如何在SuperMinimal Demo主題中實現佈局選項的詳細信息。
>您遇到過多少次WordPress主題用戶,要求您幫助他們更換主題的頁腳區域中的任何開發人員?添加一個選項,讓用戶輕鬆地管理自定義器的頁腳文本需要幾分鐘的時間。這是代碼。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
上面的代碼輸出一個文本方面,用戶可以在其中編寫版權通知,信用等。
>>提取並顯示在文本中心中輸入的文本,請在footer.php中使用本機定制方法get_theme_mod,如下所示。
<span>function superminimal_customizer_config() { </span> <span>$args = array( </span> <span>// Only use this if you are bundling the plugin with your theme </span> <span>'url_path' => get_stylesheet_directory_uri() . '/inc/kirki/', </span> <span>); </span> <span>return $args; </span> <span>} </span> <span>add_filter( 'kirki/config', 'superminimal_customizer_config' );</span>
如何添加條件選項
>在這方面,Kirki提供了什麼?
>將上面的摘要添加到TextArea控件的代碼中,可確保Superminimal_reveal_footer_text Control的值在自定義器中顯示TextAarea控件之前等於1。讓我們將superminimal_reveal_footer_text控件添加到superminimal_demo_fields()函數。
<span>function superminimal_demo_panels_sections( $wp_customize ) { </span> <span>/** </span><span> * Add Panel </span><span> */ </span> <span>$wp_customize->add_panel( 'sitepoint_demo_panel', array( </span> <span>'priority' => 10, </span> <span>'title' => __( 'SitePoint Demo Panel', 'superminimal' ), </span> <span>'description' => __( 'Kirki integration for SitePoint demo', 'superminimal' ), </span> <span>) ); </span> <span>//More code to come </span> <span>} </span> <span>add_action( 'customize_register', 'superminimal_demo_panels_sections' );</span>
> superminimal_reveal_footer_text控件是一個複選框,默認情況下將其設置為0,即未經檢查。這樣可以防止文本框架顯示。
<span>/** </span><span> * Add a Section for Site Text Colors </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_text_colors', array( </span> <span>'title' => __( 'Site Text Colors', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Site Layout </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_site_layout', array( </span> <span>'title' => __( 'Site Layout', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Footer Text </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_footer_text', array( </span> <span>'title' => __( 'Footer Text', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) );</span>
>僅在選中復選框後,即通過將其值從0更改為1,即文本中心出現在Customizer中。
>自定義器帶有功能強大的JavaScript API,可在預覽區域添加AJAX功能。這種增強功能使用戶可以實時檢查其修改,而無需等待整個Customizer預覽頁面刷新。
>我們可以通過在$ fields []數組中添加一些方便的參數來實現Kirki的相同結果。
例如,要將Ajaxified Live預覽添加到SuperMinimal_body_color設置中,請將以下片段附加到適當的$ fields []數組。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
就是這樣,然後嘗試在Superminimal_footer_text部分中的Textarea中寫入一些內容。您很快就會注意到預覽屏幕中的相應頁腳文本在沒有完整的頁面重新加載的情況下進行了相應的更改。涼爽的!
帶有無線電圖像控制的Ajax Live Preview
>在某些情況下,CSS和HTML都不適合啟用Ajax Live Preview的函數參數。一個很好的例子是為更改站點佈局的設置。使用CSS作為函數參數的值沒有意義,因為所討論的設置不會存儲任何CSS屬性值。同樣,使用HTML並不能完全削減它。實際上,它最終只會在預覽頁面上吐出<span>function superminimal_customizer_config() { </span> <span>$args = array( </span> <span>// Only use this if you are bundling the plugin with your theme </span> <span>'url_path' => get_stylesheet_directory_uri() . '/inc/kirki/', </span> <span>); </span> <span>return $args; </span> <span>} </span> <span>add_filter( 'kirki/config', 'superminimal_customizer_config' );</span>
,
sidebar-left >或好消息是,您可以插入自定義的JavaScript函數名稱作為函數參數的值,並且它有效! >您需要加入自定義功能生存的JavaScript文件並將其掛接到customize_preview_init Action Hook。 最後,編寫使用本機Customizer JavaScript API處理實時預覽的JavaScript函數。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
資源
>深入研究本文中討論的代碼的詳細信息,請隨時從Github下載超級演示主題。
我期待您的反饋!
經常詢問有關快速WordPress定制器選項開發的問題
什麼是Kirki?如何使WordPress開發受益?
中使用實時預覽功能。要使用此功能,您需要在控製配置中添加“傳輸”選項。 “傳輸”選項指定了預覽中如何反映對控件的變化。通過將此選項設置為“ postmessage”,您可以為控件啟用實時預覽。
是的,kirki旨在與任何人一起使用WordPress主題。但是,要充分利用Kirki的功能,您的主題需要支持WordPress定制器。大多數現代WordPress主題都支持定制器,因此對於大多數用戶而言,這不是一個問題。
>>使用kirki添加新面板涉及添加一個新面板主題函數的代碼很少。 php文件。該代碼指定面板的ID,標題,描述和優先級。一旦添加,面板將出現在WordPress Customizer中,您可以向其添加部分和控件。
>>如何使用Kirki? 🎜> Kirki提供了一個排版控件,可讓您自定義主題中的版式。此控件提供了設置字體系列,變體,大小,線高,字母間距和顏色的選項。您還可以將Google字體添加到控件中,使您可以訪問各種字體。
如何更新Kirki?
以上是kirki的快速WordPress定制選項的詳細內容。更多資訊請關注PHP中文網其他相關文章!