創(chuàng)建主題時(shí),您可能需要?jiǎng)?chuàng)建其他CSS樣式表或 JavaScript 文件。但是,請(qǐng)記住,在 WordPress 站點(diǎn)中,同時(shí)激活的不只有您的主題,還會(huì)有許多其他插件。想要它們和諧地一起工作,主題和插件都需要使用標(biāo)準(zhǔn)的 WordPress 方法加載腳本和樣式表,這可以確保網(wǎng)站保持高效運(yùn)行且不存在兼容問(wèn)題。
向 WordPress 添加腳本和樣式是一個(gè)相當(dāng)簡(jiǎn)單的過(guò)程。從本質(zhì)上講,您將創(chuàng)建一個(gè)將所有腳本和樣式排入隊(duì)列的函數(shù)。在排隊(duì)腳本或樣式表時(shí),WordPress 會(huì)創(chuàng)建一個(gè)句柄和路徑來(lái)查找文件及其可能具有的任何依賴項(xiàng)(如 jQuery),然后使用一個(gè)將插入腳本和樣式表插入隊(duì)列的鉤子來(lái)添加自定義 CSS 和 JS 文件。
插入腳本和樣式
為主題添加腳本和樣式的正確方法是將它們添加到?functions.php?文件中。style.css?是所有主題都需要的文件,除此之外,您還可能需要添加其他文件以擴(kuò)展主題的功能。
WordPress 包含許多 JavaScript 文件作為軟件包的一部分,其中包括一些常用的庫(kù),如 jQuery。在添加自己的JavaScript之前,?請(qǐng)檢查您是否可以使用包含的庫(kù)?。
插入腳本和樣式的基礎(chǔ)是:
- 使用
wp_enqueue_script()將?JS 文件插入隊(duì)列 - 使用
wp_enqueue_style()?將 CSS 文件插入隊(duì)列
CSS 樣式表
您的 CSS 樣式表用于自定義主題的外觀,樣式表也是存儲(chǔ)主題元信息的文件。因此,?每個(gè)主題都需要?style.css??文件?。
您應(yīng)該使用?wp_enqueue_style?加載樣式表,而不是直接把他們添加到?header.php文件中。加載主樣式表時(shí),您可以在 functions.php 中將其插入隊(duì)列。
插入?style.css?文件
wp_enqueue_style( 'style', get_stylesheet_uri() );
上面的代碼將查找名為 “style.css” 的樣式表并加載它。
樣式排隊(duì)函數(shù)的基本功能是:
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
您可以包含以下參數(shù):
- $handle 樣式表名稱。
- $src 樣式文件所在的位置,其余參數(shù)是可選的。
- $deps 指的是此樣式表是否依賴于另一個(gè)樣式表。如果設(shè)置了此項(xiàng),則除非首先加載其依賴的樣式表,否則不會(huì)加載此樣式表。
- $ver:版本號(hào)。
- $media:可以指定要加載此樣式表的媒體類型,例如 ‘a(chǎn)ll’, ‘screen’, ‘print’ 或 ‘handheld’。
因此,如果您需要加載主題根目錄中名為“CSS”的文件夾中的名為“slider.css”的樣式表,可以使用如下代碼:
wp_enqueue_style( 'slider', get_template_directory_uri() . '/css/slider.css',false,'1.1','all');
JavaScript 腳本
加載 JavaScript 腳本時(shí),您應(yīng)該使用?wp_enqueue_script?函數(shù)。這樣做可以確保腳本能夠按照正確的加載,并在瀏覽器中緩存合適的版本,除此之外,您還可以使用條件函數(shù)在 WordPress 中按需加載腳本。
wp_enqueue_script使用類似的語(yǔ)法?wp_enqueue_style。該函數(shù)的基本使用方法如下:
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer);
它包含下面的參數(shù):
- $handle:腳本的名稱。
- $src:腳本文件所在的位置。
- $deps:依賴的腳本數(shù)組,例如 jQuery。
- $ver:腳本的版本號(hào)。
- $in_footer:是一個(gè)布爾數(shù)(true / false),它允許您將腳本放在 HTML 文檔的頁(yè)腳中,而不是放在
?<head>?中,這樣它就不會(huì)延遲加載 DOM 樹(shù)。
該腳本的真實(shí)工作代碼示例如下:
wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);
評(píng)論回復(fù)腳本
WordPress 評(píng)論默認(rèn)有很多功能,包括嵌套評(píng)論和增強(qiáng)的評(píng)論表單。為了使評(píng)論正常工作,您需要加載一些 JavaScript。但是,由于需要在這個(gè) JavaScript 腳本中定義一些選項(xiàng),因此您應(yīng)將此腳本添加到使用評(píng)論的每個(gè)主題中。
包含評(píng)論回復(fù)腳本的正確方法是使用條件標(biāo)簽來(lái)檢查是否存在某些條件,以便不會(huì)不必要地加載腳本。例如,您需要?is_singular?讓該腳本只在單頁(yè)面中加載,并且只在用戶 “啟用嵌套注釋” 時(shí)加載。所以,實(shí)際上加載評(píng)論腳本的代碼看起來(lái)像下面這樣:
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
如果用戶啟用了評(píng)論,并且在文章頁(yè)面上,WordPress 將加載評(píng)論回復(fù)腳本,否則就不會(huì)加載。
合并排隊(duì)函數(shù)
為了便于維護(hù),最好將所有排隊(duì)腳本和樣式的操作合并到一個(gè)函數(shù)中,然后使用wp_enqueue_scripts函數(shù)來(lái)調(diào)用它們?,如下所示:
function add_theme_scripts() {
wp_enqueue_style( 'style', get_stylesheet_uri() );
wp_enqueue_style( 'slider', get_template_directory_uri() . '/css/slider.css', array(), '1.1', 'all');
wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'add_theme_scripts' );
WordPress包含的默認(rèn)腳本
默認(rèn)情況下,WordPress 包含了 Web 開(kāi)發(fā)人員常用的許多流行腳本,以及WordPress 本身使用的腳本。
為了能保證內(nèi)容更新的及時(shí)性,這部分不再翻譯,有需要的朋友可以到官方主題開(kāi)發(fā)手冊(cè)的相關(guān)章節(jié)中了解。



