亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
關(guān)於交通的一切
實(shí)作我們的新設(shè)定
添加我們的鉤子
實(shí)作設(shè)定
演示控制項(xiàng)
更新我們的交通
但還有更多......
首頁 CMS教程 &#&按 增強(qiáng)您的 WordPress 主題:使用主題定制器引入全新設(shè)置

增強(qiáng)您的 WordPress 主題:使用主題定制器引入全新設(shè)置

Sep 03, 2023 pm 10:17 PM

到目前為止,我們已經(jīng)了解了主題定制器是什麼、它是如何工作的以及它獨(dú)有的組件。我們甚至討論瞭如何將選項(xiàng)序列化到資料庫中,以便我們稍後在使用主題時可以檢索它們。

為此,我們是時候開始使用主題定制器進(jìn)行我們自己的工作了。在本文中,我們將了解傳輸、它們的工作原理以及它們兩種主要方法的差異。

此外,我們將在 WordPress 的現(xiàn)有部分之一中引入我們自己的控件,並了解它如何與各種傳輸模型配合使用。


關(guān)於交通的一切

在我們實(shí)際寫任何程式碼之前,我們需要熟悉的另一個概念是 transports 的概念。本質(zhì)上,這就是主題定制器將資料發(fā)送到主題以顯示更改的方式。

資料傳輸有兩種方式:

  1. refresh - 這是預(yù)設(shè)方法。使用此方法,當(dāng)使用者在主題自訂器中變更設(shè)定時,顯示主題的框架將在顯示變更之前刷新。
  2. postMessage - 此方法必須明確說明,但它提供了更增強(qiáng)的使用者體驗(yàn)。使用此方法時,將發(fā)出非同步請求,並且主題的外觀將更新以反映使用者的設(shè)置,而無需重新載入頁面。

這個概念很簡單,對吧?

在本文中,我們將實(shí)作新主題自訂設(shè)定的兩個版本。首先,我們將介紹一個使用 refresh 傳輸?shù)脑O(shè)定。之後,我們將改進(jìn)設(shè)置,使其使用 postMessage 傳輸。

在文章末尾,我將連結(jié)到兩個版本的程式碼,以便您可以在本機(jī)上下載並安裝某些內(nèi)容,而不必簡單地參考本文。

話雖如此,讓我們開始吧。


實(shí)作我們的新設(shè)定

在本文中,我們將介紹一個設(shè)置,允許使用者更改其主題中存在的所有錨點(diǎn)的顏色。我們很少需要在整個網(wǎng)站上普遍更改錨點(diǎn)的顏色,但實(shí)施此特定設(shè)定將教您以下內(nèi)容:

  • 如何在現(xiàn)有部分中實(shí)作新設(shè)定
  • 如何使用 WP_Customize_Color_Control
  • #如何使用 refresh 傳輸方法以及如何使用 postMessage 傳輸方法

顯然,還有很多工作要做。

添加我們的鉤子

首先,讓我們?yōu)?index.php 模板添加一個錨點(diǎn),以便我們可以實(shí)際著色。這是一個簡單的改變。只需確保您的 index.php 模板包含以下內(nèi)容:

<div id="content">
	This is the content. <a href="#">This is an anchor</a> so that we can tell the Theme Customizer is working.
</div><!-- /#content -->

接下來,我們需要引入一個掛鉤到 customize_register 操作的函數(shù):

function tcx_register_theme_customizer( $wp_customize ) {
    // More to come...
}
add_action( 'customize_register', 'tcx_register_theme_customizer' );

在這裡,我們定義了一個函數(shù),用於介紹我們的新設(shè)定。請注意,此函數(shù)最重要的一點(diǎn)是它接受單個參數(shù) - wp_customize - 這允許我們將我們的部分、設(shè)定和控制項(xiàng)新增至主題自訂器。

回想上一篇文章,我們提到 WordPress 提供了許多部分,因此我們不必添加自己的部分。在本例中,我們將利用預(yù)先定義的 colors 部分。

實(shí)作設(shè)定

tcx_register_theme_customizer 函數(shù)的上下文中,加入以下程式碼區(qū)塊:

$wp_customize->add_setting(
	'tcx_link_color',
	array(
		'default'     => '#000000'
	)
);

這表示我們正在向定制器引入一個新設(shè)置,ID 為 tcx_link_color,預(yù)設(shè)顏色為黑色。

當(dāng)我們實(shí)作顏色選擇器時,這將發(fā)揮作用。那麼就讓我們現(xiàn)在就開始吧。在上面的程式碼區(qū)塊之後,將以下區(qū)塊新增到您的函數(shù)中:

$wp_customize->add_control(
	new WP_Customize_Color_Control(
		$wp_customize,
		'link_color',
		array(
			'label'      => __( 'Link Color', 'tcx' ),
			'section'    => 'colors',
			'settings'   => 'tcx_link_color'
		)
	)
);

這將在 colors 部分引入顏色選擇器控制項(xiàng)。它將添加一個國際化標(biāo)籤,內(nèi)容為“連結(jié)顏色”,並將自身綁定到我們在上面第一段程式碼中定義的 tcx_link_color 設(shè)定。

函數(shù)的最終版本應(yīng)如下所示:

function tcx_register_theme_customizer( $wp_customize ) {

	$wp_customize->add_setting(
		'tcx_link_color',
		array(
			'default'     => '#000000'
		)
	);

	$wp_customize->add_control(
		new WP_Customize_Color_Control(
			$wp_customize,
			'link_color',
			array(
				'label'      => __( 'Link Color', 'tcx' ),
				'section'    => 'colors',
				'settings'   => 'tcx_link_color'
			)
		)
	);

}
add_action( 'customize_register', 'tcx_register_theme_customizer' );

演示控制項(xiàng)

此時,儲存您的工作,啟動 WordPress,導(dǎo)航到主題自訂器,您應(yīng)該會看到以下內(nèi)容:

增強(qiáng)您的 WordPress 主題:使用主題定制器引入全新設(shè)置

#請注意,您可以展開顏色選擇器,選擇顏色,並且通常按預(yù)期使用它;然而,內(nèi)容的錨點(diǎn)根本沒有改變。接下來,我們將以下函數(shù)加入到 functions.php 檔案中。

function tcx_customizer_css() {
	?>
	<style type="text/css">
		a { color: <?php echo get_theme_mod( 'tcx_link_color' ); ?>; }
	</style>
	<?php
}
add_action( 'wp_head', 'tcx_customizer_css' );

顯然,該函數(shù)已掛接到 wp_head 操作中。它負(fù)責(zé)從選項(xiàng)表中讀取與我們的新設(shè)定相對應(yīng)的值(由 tcx_link_color 標(biāo)識),然後將該值寫入頁面標(biāo)題中的 style 區(qū)塊中。

完成後,刷新主題定制器,您應(yīng)該注意到每當(dāng)您選擇顏色時就會發(fā)生變化。您還應(yīng)該注意到,每當(dāng)更改顏色以及標(biāo)題、標(biāo)語或靜態(tài)首頁選項(xiàng)時,頁面就會閃爍。

更新我們的交通

現(xiàn)在我們已經(jīng)完成了這項(xiàng)工作,我們可以引入一些更改,這些更改將改善用戶體驗(yàn),因?yàn)樗婕笆褂?WordPress 主題定制器更改主題選項(xiàng)。

首先,我們需要更新 footer.php 模板,使其包含對 wp_footer() 的調(diào)用。這樣我們就可以在主題的頁腳中加載 JavaScript,這是 postMessage 傳輸所必需的。

頁腳應(yīng)如下所示:

		<div id="footer">
			&copy; <?php echo date( 'Y' ); ?> <?php bloginfo( 'title' ); ?> All Rights Reserved
		</div><!-- /#footer -->
		<?php wp_footer(); ?>
	</body>
</html>

接下來,我們需要更新 functions.php 中的 add_setting 調(diào)用,以便它使用正確的傳輸方法。

更新代碼,使其看起來像這樣:

$wp_customize->add_setting(
	'tcx_link_color',
	array(
		'default'     => '#000000',
		'transport'   => 'postMessage'
	)
);

最后,不要刪除我們在上一個版本中定義的函數(shù) tcx_customizer_css ,因?yàn)樗匀恍枰x取我們?yōu)殄^點(diǎn)選擇的值 - 我們只是異步保存它們而不是刷新時保存。

現(xiàn)在在主題的根目錄中創(chuàng)建一個名為 js 的目錄,然后將 theme-customizer.js 文件添加到該目錄中。

在此 JavaScript 文件中,我們需要添加以下代碼塊。通常,我喜歡嘗試解釋我們正在做的事情,但在這種情況下,在顯示代碼之后檢查會更容易。

(function( $ ) {
	"use strict";

	wp.customize( 'tcx_link_color', function( value ) {
		value.bind( function( to ) {
			$( 'a' ).css( 'color', to );
		} );
	});

})( jQuery );

在這段代碼中,請注意,我們可以訪問 wp JavaScript 對象,該對象為我們提供 customize 消息,就像服務(wù)器端 $wp_customize->add_setting() 的設(shè)置一樣。

接下來,請注意該函數(shù)接受設(shè)置的 ID,這是一個回調(diào)函數(shù),該函數(shù)接收具有原始值的對象,然后允許我們將另一個函數(shù)綁定到該對象以進(jìn)行更改每當(dāng)該對象發(fā)生更改時。

還在我身邊嗎?

另一種說法是:當(dāng)鏈接顏色更改時,只要使用顏色選擇器,我們就可以更改主題的顯示。

話雖如此,讓我們重新訪問 functions.php 文件并引入一個新函數(shù),以便我們可以正確地將 JavaScript 文件排入隊(duì)列。

首先,我們將引入一個名為 tcx_customizer_live_preview() 的函數(shù),它將掛鉤 customize_preview_init 操作:

function tcx_customizer_live_preview() {
	// More to come
}
add_action( 'customize_preview_init', 'tcx_customizer_live_preview' );

接下來,我們將對 wp_enqueue_script 進(jìn)行標(biāo)準(zhǔn)調(diào)用,這將引入我們的 theme-customizer.js 文件,但請注意,我們將最后一個參數(shù)作為 true 傳遞,因此該腳本已添加到文檔的頁腳

wp_enqueue_script(
	'tcx-theme-customizer',
	get_template_directory_uri() . '/js/theme-customizer.js',
	array( 'jquery', 'customize-preview' ),
	'0.3.0',
	true
);

該函數(shù)的最終版本如下所示:

function tcx_customizer_live_preview() {

	wp_enqueue_script(
		'tcx-theme-customizer',
		get_template_directory_uri() . '/js/theme-customizer.js',
		array( 'jquery', 'customize-preview' ),
		'0.3.0',
		true
	);

}
add_action( 'customize_preview_init', 'tcx_customizer_live_preview' );

保存您的所有工作。假設(shè)您已正確完成所有操作,您現(xiàn)在應(yīng)該能夠更改標(biāo)題、標(biāo)語、鏈接顏色和靜態(tài)首頁選項(xiàng),無需刷新頁面。

更好的用戶體驗(yàn),是嗎?


但還有更多......

我們在本文中查看了很多。以至于本文的源代碼已發(fā)布為兩個不同的下載:

  • 首先,下載使用 refresh 傳輸?shù)陌姹?/li>
  • 然后,下載使用 postMessage 傳輸?shù)陌姹?/li>

但是我們還沒有完成。在下一篇文章中,我們將了解如何引入我們自己的原創(chuàng)部分以及我們自己的原創(chuàng)設(shè)置和控件來完善本系列。

現(xiàn)在,請嘗試使用我們上面提供的代碼,以便為下一篇文章的工作做好準(zhǔn)備!

以上是增強(qiáng)您的 WordPress 主題:使用主題定制器引入全新設(shè)置的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

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

如何恢復(fù)WordPress核心更新 如何恢復(fù)WordPress核心更新 Jul 02, 2025 am 12:05 AM

要回滾WordPress版本,可使用插件或手動替換核心文件,並禁用自動更新。 1.使用WPDowngrade等插件輸入目標(biāo)版本號即可自動下載替換;2.手動下載舊版WordPress並通過FTP替換wp-includes、wp-admin等文件但保留wp-config.php和wp-content;3.在wp-config.php中添加代碼或使用過濾器禁用核心自動更新以防止再次升級。操作前務(wù)必備份網(wǎng)站和數(shù)據(jù)庫,確保安全可靠。長期建議保持最新版以保障安全性與功能支持。

如何在WordPress中創(chuàng)建自定義短代碼 如何在WordPress中創(chuàng)建自定義短代碼 Jul 02, 2025 am 12:21 AM

在WordPress中創(chuàng)建自定義短代碼的步驟如下:1.通過functions.php文件或自定義插件編寫PHP函數(shù);2.使用add_shortcode()將函數(shù)綁定到短代碼標(biāo)籤;3.在函數(shù)中處理參數(shù)並返回輸出內(nèi)容。例如,創(chuàng)建按鈕短代碼時可定義顏色和鏈接參數(shù),實(shí)現(xiàn)靈活配置。使用時可在編輯器中插入類似[buttoncolor="red"url="https://example.com"]點(diǎn)擊這裡[/button]的標(biāo)籤,並可通過do_shortcode()在模

如何診斷WordPress引起的高CPU使用 如何診斷WordPress引起的高CPU使用 Jul 06, 2025 am 12:08 AM

WordPress導(dǎo)致服務(wù)器CPU使用率飆升的主要原因包括插件問題、數(shù)據(jù)庫查詢效率低、主題代碼質(zhì)量差或流量激增。 1.首先通過top、htop或控制面板工具確認(rèn)是否為WordPress引起的高負(fù)載;2.進(jìn)入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況並刪除或替換低效插件;3.安裝緩存插件、清理冗餘數(shù)據(jù)、分析慢查詢?nèi)照I以優(yōu)化數(shù)據(jù)庫;4.檢查主題是否存在過度加載內(nèi)容、複雜查詢或缺乏緩存機(jī)制等問題,建議用標(biāo)準(zhǔn)主題測試對比並優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位並解

如何在沒有插件的情況下優(yōu)化WordPress 如何在沒有插件的情況下優(yōu)化WordPress Jul 05, 2025 am 12:01 AM

優(yōu)化WordPress站點(diǎn)不依賴插件的方法包括:1.使用輕量級主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動壓縮和合併CSS、JS文件,減少HTTP請求;3.上傳前優(yōu)化圖片,使用WebP格式並控製文件大小;4.配置.htaccess啟用瀏覽器緩存,並接入CDN提升靜態(tài)資源加載速度;5.限製文章修訂版本並定期清理數(shù)據(jù)庫冗餘數(shù)據(jù)。

如何在WordPress中縮小JavaScript文件 如何在WordPress中縮小JavaScript文件 Jul 07, 2025 am 01:11 AM

MinifyingJavaScript文件可通過刪除空白、註釋和無用代碼來提升WordPress網(wǎng)站加載速度。 1.使用支持合併壓縮的緩存插件如W3TotalCache,在“Minify”選項(xiàng)中啟用並選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細(xì)控制;3.手動壓縮JS文件並通過FTP上傳,適用於熟悉開發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能衝突,啟用後需徹底測試網(wǎng)站功能。

如何使用瞬態(tài)API進(jìn)行緩存 如何使用瞬態(tài)API進(jìn)行緩存 Jul 05, 2025 am 12:05 AM

TransientsAPI是WordPress中用於臨時存儲可自動過期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設(shè)置生存時間(TTL),適合緩存API請求結(jié)果、複雜計(jì)算數(shù)據(jù)等場景。使用時需注意key命名唯一性與命名空間、緩存“懶刪除”機(jī)制及對象緩存環(huán)境下可能不持久的問題。典型應(yīng)用場景包括減少外部請求頻率、控制代碼執(zhí)行節(jié)奏和提升頁面加載性能。

如何使用對象緩存進(jìn)行持續(xù)存儲 如何使用對象緩存進(jìn)行持續(xù)存儲 Jul 03, 2025 am 12:23 AM

對象緩存可輔助持久存儲,適用於高訪問低更新、可容忍短暫丟失的數(shù)據(jù)。 1.適合用緩存“持久化”的數(shù)據(jù)包括用戶配置、熱門商品信息等,能從數(shù)據(jù)庫恢復(fù)但使用緩存可加速訪問。 2.選擇Redis等支持持久化的緩存後端,啟用RDB或AOF模式,並配置合理過期策略,但不能替代主數(shù)據(jù)庫。 3.設(shè)置長TTL或永不過期鍵,採用清晰鍵名結(jié)構(gòu)如user:1001:profile,修改數(shù)據(jù)時同步更新緩存。 4.可結(jié)合本地與分佈式緩存,本地存小數(shù)據(jù)、Redis存大數(shù)據(jù)並用於重啟後恢復(fù),同時注意一致性與資源佔(zhàn)用問題。

如何以編程方式防止評論垃圾郵件 如何以編程方式防止評論垃圾郵件 Jul 08, 2025 am 12:04 AM

防止評論垃圾信息最有效的方式是通過程序化手段自動識別並攔截。 1.使用驗(yàn)證碼機(jī)制(如GooglereCAPTCHA或hCaptcha)可有效區(qū)分人類與機(jī)器人,尤其適合公眾網(wǎng)站;2.設(shè)置隱藏字段(Honeypot技術(shù)),利用機(jī)器人自動填寫特性識別垃圾評論,不影響用戶體驗(yàn);3.檢查評論內(nèi)容關(guān)鍵詞黑名單,通過敏感詞匹配過濾垃圾信息,需注意避免誤判;4.判斷評論頻率與來源IP,限制單位時間內(nèi)的提交次數(shù)並建立黑名單;5.使用第三方反垃圾服務(wù)(如Akismet、Cloudflare)提升識別準(zhǔn)確性??筛鶕?jù)網(wǎng)站

See all articles