包含 CSS 和 JavaScript 文件

  1. 主頁(yè)
  2. 文檔
  3. WordPress主題開(kāi)發(fā)手冊(cè)
  4. 主題基礎(chǔ)
  5. 包含 CSS 和 JavaScript 文件

創(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ǔ)是:

  1. 使用wp_enqueue_script()將?JS 文件插入隊(duì)列
  2. 使用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é)中了解。

這篇文章對(duì)您有用嗎? 1 2
0 條回復(fù) A文章作者 M管理員
    暫無(wú)討論,說(shuō)說(shuō)你的看法吧
?
個(gè)人中心
購(gòu)物車(chē)
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

射洪县| 榕江县| 克什克腾旗| 合江县| 长宁区| 靖西县| 岳西县| 柘城县| 湖口县| 收藏| 马尔康县| 西充县| 闸北区| 龙陵县| 莲花县| 兴城市| 织金县| 兴化市| 云南省| 浦江县| 大宁县| 阿克| 锦屏县| 长治市| 揭阳市| 左权县| 中山市| 永登县| 奉化市| 万年县| 红河县| 龙胜| 桦南县| 扶绥县| 金塔县| 兴安盟| 菏泽市| 万宁市| 东明县| 江都市| 新乡市|