久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

WordPress怎么加載 CSS 和JS? - WordPress開發

這將確保網站保持高效并且不存在不兼容問題。

在開發wordpress主題時,如果還在用寫網頁時的方法進行加載,就不太符合官方建議了,其實官方提供了一系列的函數,幫助我們更好的加載這些文件,這一次的wordpress開發教大家怎么加載 CSS 和JS。

主題

/**
 * 加載CSS
 */
wp_enqueue_style( 'index', get_template_directory_uri() . '/css/index.css',false,'1.0','all');

正確加載 CSS 到 WordPress的例子(放于主題根目錄的functions.php文件內的

//加載額外的css到wordpress
function my_new_css(){
	wp_register_style('comments',get_template_directory_uri().'/css/comments.css');
	wp_enqueue_style('comments', get_template_directory_uri().'/css/comments.css');
}
add_action('wp_enqueue_scripts','my_new_css');

加載JS:

/**
 * 將腳本和樣式排隊。
 */
function lifet_scripts() {

	wp_enqueue_script( 'lifet-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20151215', true );

	wp_enqueue_script( 'lifet-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20151215', true );
	//簡繁切換
	wp_enqueue_script( 'zh-cn-tw', get_template_directory_uri() . '/js/zh-cn-tw.js', array(), '20200506', true );

}
add_action( 'wp_enqueue_scripts', 'lifet_scripts' );

子主題

加載css

//加載子主題的css到主題中
function my_theme_enqueue_styles(){
  wp_enqueue_style( 'bootstrap', get_stylesheet_directory_uri().'/css/n.css' );
  wp_enqueue_style( 'nice', get_stylesheet_directory_uri().'/css/nice.css' );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

加載JS

//加載子主題的js到主題中
function lifet_scripts() {
	//引導提示
	wp_enqueue_script( 'intro', get_stylesheet_directory_uri() . '/assets/intro/intro.js', array(), '20200506', true );
}
add_action( 'wp_enqueue_scripts', 'lifet_scripts' );

加載PHP

require_once( get_stylesheet_directory(). '/inc/n_xunzhang.php' );

判斷加載css:

肯定有更好的辦法,歡迎在評論區交流。

// 在網站head加載css
if ( ! function_exists( 'lifet_css_head' ) ) :
   function lifet_css_head() {
      $link_head = "    <link rel='stylesheet' href='";
      $link_footer = "' type='text/css' media='all' />";
      $css_url = get_template_directory_uri();

      //是否為首頁
      if( is_home() ){echo "$link_head$css_url/css/index.css$link_footer";}
   
      //是否為日志頁
      if( is_single() ){echo "$link_head$css_url/css/single.css$link_footer";}
   
      //是否為一般頁面
      if( is_page() ){echo "$link_head$css_url/css/page.css$link_footer";}
   }
  endif;
add_action('wp_head', 'lifet_css_head');

怎么引入jquery.js?

怎么引入jquery.js? - wordpress開發

css/js方法總結

WordPress引入css/js方法很多,條件很多。如何全局加載,或僅在某些頁面精準加載,什么時候需要先注冊腳本再加載,本文希望找到最簡單的方式,并給出探索更多方法的途徑。

在前臺加載css/js

wp_enqueue_script()函數加載js,用wp_enqueue_style()加載css,加載資源的位置(action)只有一個——wp_enqueue_scripts

用wp_enqueue_系列函數可以更好的處理腳本樣式表的依賴關系,防止重復加載,以twentyfifteen主題為例。

function twentyfifteen_scripts() {
     
    //全局加載一般的樣式表
    wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.2' );
 
    //全局加載主樣式表
    wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri() );
 
    //全局加載僅用于IE的樣式表
    wp_enqueue_style( 'twentyfifteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfifteen-style' ), '20141010' );
    wp_style_add_data( 'twentyfifteen-ie', 'conditional', 'lt IE 9' );
 
    //全局加載js腳本
    wp_enqueue_script( 'twentyfifteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20141212', true );
     
    //給js腳本傳遞變量,解決腳本中不能調用php的問題
    wp_localize_script( 'twentyfifteen-script', 'screenReaderText', array(
        'expand'   => '<span class="screen-reader-text">' . __( 'expand child menu', 'twentyfifteen' ) . '</span>',
        'collapse' => '<span class="screen-reader-text">' . __( 'collapse child menu', 'twentyfifteen' ) . '</span>',
    ) );
}
add_action( 'wp_enqueue_scripts', 'twentyfifteen_scripts' );

若僅在某些頁面加載,利用WordPress的Conditional Tags即可。

加塞 JS

// functions.php
function my_footer_js() {
    ?>
    <script>
//alert("789");
console.log("666");
</script>
<?php
}
add_action('wp_footer', 'my_footer_js'); // wp_head 同理

什么時需要先注冊css/js

即何時需要使用wp_register_script()wp_register_style()函數。

當css/js很多,并且要分情況加載時,使用wp_register_script()可以更好的管理資源,避免重復勞動。下面的示例代碼中,先在init action上把所有需要用到樣式表都注冊一遍,之后不管想在哪里引入,都可以簡單的用wp_enqueue_style( $handle )來加載。

// 在init action處注冊腳本,可以與其它邏輯代碼放在一起
function my_init(){
    $url = get_template_directory_uri();
    // 注冊樣式表
    $styles = array(
        'style1' => $url . '/css/style1.css',
        'style2' => $url . '/css/style2.css',
        'style3' => $url . '/css/style3.css'
    );
 
    foreach( $styles as $k => $v ){
        wp_register_style( $k, $v, false );
    }
 
    // 注冊腳本
     
    // 其它需要在init action處運行的腳本
}
add_action( 'init', 'my_init' );

注冊腳本時需要運行$wp_scripts->add( $handle, $src, $deps, $ver );,若腳本沒有注冊直接使用wp_enqueue_script,需要先調用add方法,也就是說重復enqueue一個腳本就會運行多次add方法,降低了程序的效率。

在WordPress登錄頁面加載

將action替換為login_enqueue_scripts即可,例如

function enqueue_for_login(){
    wp_enqueue_style( 'core', 'style.css', false );
    wp_enqueue_script( 'my-js', 'filename.js', false );
}
add_action( 'login_enqueue_scripts', 'enqueue_for_login' );

如果想了解其它方式,可以仔細閱讀wp-login.php。

在后臺全局加載

同理,將action改為admin_enqueue_scripts

function my_enqueue() {
    wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'myscript.js' );
}
add_action( 'admin_enqueue_scripts', 'my_enqueue' );

想了解更多方法,請閱讀wp-admin/admin-header.php。

后臺按需加載

僅用于后臺某些頁面的資源只在這些頁面加載就好,不要到處使用,可以減少不必要的沖突。

1. $hook_suffix

首先我們可以根據admin_enqueue_scripts這個action傳遞的$hook_suffix參數來判斷所處的頁面,例如僅在edit.php加載,代碼如下

function my_enqueue( $hook_suffix ) {
    if ( 'edit.php' == $hook_suffix ) {
       wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'myscript.js' );
    }   
}
add_action( 'admin_enqueue_scripts', 'my_enqueue' );

edit.php就是post、page或者custom post type的列表頁面,編輯頁面是post.php,新建頁面是post-new.php,可以在不同頁面打印$hook_suffix來了解它的使用方法。但由此也可看出它不能區分現在是在哪種post頁面,需要借助更多的全局變量來判斷。

2. $typenow

全局變量$typenow可以告訴我們當前的post type,例如僅在post的列表頁面加載可以這樣來判斷

function my_enqueue( $hook_suffix ) {
    global $typenow;
    if ( 'edit.php' == $hook_suffix && $typenow == 'post' ) {
       wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'myscript.js' );
    }   
}
add_action( 'admin_enqueue_scripts', 'my_enqueue' );

3. get_current_screen()

上述兩個全局變量可以區分大多數情況,若區分不了,可以試試使用get_current_screen()函數,該函數返回當前頁面的post type、ID、base等信息,只能在admin_init之后使用,具體可以參考官方文檔。

4. $pagenow

全局變量$pagenow的返回值與$hook_suffix類似,只是它在前臺后臺都可以訪問,定義的更早,例如前三者在admin_init處沒有值,但$pagenow卻有。

它定義在wp-includes/vars.php中,該文件還定義了瀏覽器、服務器全局變量,例如$is_winIE、$is_apache,wp_is_mobile()函數也在這里出現。

上述全局變量和函數能區分大多數情況,但依然有無力的時候,這時可以借助$_REQUEST來判斷。上述變量的值也是從$_REQUEST獲取,但多一層值是否存在的檢查,所以能用它們解決的就不要用$_REQUEST或者$_GET。

補充


在創建主題時,您可能希望創建其他樣式表或JavaScript文件。但是,請記住,WordPress網站不僅會激活您的主題,還會使用許多不同的插件。因此,一切都和諧地工作,主題和插件使用標準的WordPress方法加載腳本和樣式表是很重要的。這將確保網站保持高效并且不存在不兼容問題。

WordPress是目前世界上最受歡迎的內容管理系統,擁有數千萬用戶。這就是為什么,為了制作一個成功的主題,我們需要像每個WordPress用戶一樣思考,并嘗試按照本書的說法正確加載我們的主題中的CSS文件。

幸運的是,WordPress可以很容易地解決這樣的問題:注冊和排隊樣式表。

在WordPress中加載CSS的正確方法

正如我們之前所說,WordPress多年來發展很快,我們必須考慮世界上每一個WordPress用戶。?

除此之外,我們還需要考慮數千個WordPress插件。但是不要讓這些大數字嚇到你:WordPress為我們提供了非常有用的功能,可以將CSS樣式正確加載到WordPress中。?

我們來看一下。

注冊CSS文件

如果您要加載CSS樣式表,則應首先使用該wp_register_style()函數注冊它們:

wp_register_style( $handle, $src, $deps, $ver, $media );
?>
  • $handle(字符串,必需)是樣式表的唯一名稱。其他函數將使用此“句柄”來排隊和打印樣式表。
  • $src(string,required)是指樣式表的URL。您可以使用函數get_template_directory_uri()來獲取主題目錄中的樣式文件。永遠不要考慮硬編碼!
  • $deps(array,optional)處理依賴樣式的名稱。如果缺少某些其他樣式文件,樣式表將無效,請使用此參數設置“依賴項”。
  • $ver(string或boolean,optional)是版本號。如果需要,您可以使用主題的版本號或組成一個。如果您不想使用版本號,請將其設置為null。它默認為false,這使得WordPress添加自己的版本號。
  • $media(字符串,可選)是??CSS媒體類型,如“屏幕”或“手持”或“打印”。如果您不確定是否需要使用它,請不要使用它。它默認為“全部”。

這是wp_register_style()函數的一個例子:

// wp_register_style() 示例
wp_register_style('my-bootstrap-extension', // 名稱
    get_template_directory_uri() . '/css/my-bootstrap-extension.css', // 樣式表的路徑array( 'bootstrap-main' ), // 依存的其他樣式表'1.2', // 版本號'screen', // CSS 媒體類型
);
?>

在WordPress中,注冊樣式是“可選的”。如果你的樣式不會被其他插件使用,或者你不打算使用任何代碼來再次加載它,你可以自由地排隊樣式而不需要注冊它。繼續看看它是如何實現的。

排隊 CSS 文件

注冊我們的風格文件后,我們需要“排隊”它,使其準備好在我們主題的部分加載。

我們使用?wp_enqueue_style()?函數來實現:

wp_enqueue_style( $handle, $src, $deps, $ver, $media );

該函數的參數和上面的 wp_register_style() 函數是一樣的,就不再重復。

請記住,如果一個插件將要用到你的樣式表,或者你打算將在你的主題的不同地方進行加載,你絕對應該先注冊。

加載樣式到網站

我們不能在主題中隨便找個地方使用 wp_enqueue_style() 函數 – 我們需要使用“動作”鉤子。還有我們可以使用各種用途的三個動作鉤子:

以下是這些鉤子的示例:

// 在網站前臺加載css
function mytheme_enqueue_style() {
    wp_enqueue_style( 'mytheme-style', get_stylesheet_uri() ); 
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_style' );
 
// 在后臺加載css
function mytheme_enqueue_options_style() {
    wp_enqueue_style( 'mytheme-options-style', get_template_directory_uri() . '/css/admin.css' ); 
}
add_action( 'admin_enqueue_scripts', 'mytheme_enqueue_options_style' );
 
// 在登錄頁面加載css
function mytheme_enqueue_login_style() {
    wp_enqueue_style( 'mytheme-options-style', get_template_directory_uri() . '/css/login.css' ); 
}
add_action( 'login_enqueue_scripts', 'mytheme_enqueue_login_style' );
 
?>

WordPress 有一個重要的公告:“使用 wp_enqueue_scripts() ,不要用 wp_print_styles()?”,它會告訴你一個與 WordPress3.3版本可能的不兼容錯誤。

額外函數

WordPress 有一些關于 CSS 非常有用的函數:他們允許我們打印內嵌樣式,查看樣式文件的排隊狀態,添加元數據以及注銷樣式。

添加動態內聯樣式:wp_add_inline_style()

如果你的主題有選項可自定義主題的樣式,你可以使用 wp_add_inline_style() 函數來打印內置的樣式。

檢查樣式表的排隊狀態:wp_style_is()

相關介紹

怎么讓插件加載css和js? - wordpress開發

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      久久精品网站免费观看| 石原莉奈一区二区三区在线观看| 国产精品沙发午睡系列990531| 三级在线观看一区二区| av一区二区三区| 日韩三级视频在线看| 亚洲成av人片| 欧美精品免费视频| 亚洲图片自拍偷拍| 欧美最猛黑人xxxxx猛交| 亚洲欧美成aⅴ人在线观看| 成人黄色在线网站| 中文字幕不卡在线观看| 成人午夜电影久久影院| 国产精品久久久久婷婷二区次| 免费高清在线一区| 日韩欧美另类在线| 国产一区二区日韩精品| 久久久久国产精品麻豆ai换脸| 亚洲6080在线| 欧美亚洲高清一区二区三区不卡| 综合欧美亚洲日本| 欧美亚洲免费在线一区| 青娱乐精品在线视频| 日韩欧美黄色影院| 高清成人免费视频| 最新国产精品久久精品| 日本乱人伦aⅴ精品| 亚洲国产精品一区二区久久| 91精品国产一区二区三区香蕉| 久久成人免费网| 精品视频一区二区三区免费| 性欧美大战久久久久久久久| 欧美成人高清电影在线| 国产成人日日夜夜| 一区二区久久久| 精品欧美一区二区久久| 成人高清在线视频| 首页国产丝袜综合| 久久久另类综合| 99精品视频在线观看免费| 一区二区欧美精品| 色综合天天综合给合国产| 亚洲电影视频在线| 精品国产三级电影在线观看| 99视频精品在线| 日韩va亚洲va欧美va久久| 欧美综合色免费| 国产美女在线观看一区| 亚洲精品成人少妇| 精品国产一区二区三区久久久蜜月 | 国产成人免费视频网站高清观看视频| 欧美一区二区三区小说| 成人激情文学综合网| 波多野结衣一区二区三区| 亚洲一区二区欧美日韩| 久久精品一区二区三区av| 欧美无砖专区一中文字| 懂色av一区二区夜夜嗨| 久久精品国产网站| 日韩经典中文字幕一区| 一区二区三区免费| 国产精品高潮呻吟| 欧美激情一区三区| 久久蜜桃一区二区| 精品剧情在线观看| 精品国产乱码久久| 91影视在线播放| 亚洲国产另类av| 日韩毛片在线免费观看| 国产精品久久久久久亚洲毛片| 精品成人一区二区三区| 日韩丝袜情趣美女图片| 日韩欧美中文字幕制服| 91精品在线免费| 在线播放亚洲一区| 欧美一区二区三区四区五区| 欧美日本一区二区| 国产成人亚洲综合色影视| 亚洲一卡二卡三卡四卡无卡久久| 亚洲欧美激情插 | 蜜臀久久99精品久久久久久9| 亚洲一区二区视频| 亚洲a一区二区| 婷婷开心久久网| 肉色丝袜一区二区| 日韩极品在线观看| 久久电影网电视剧免费观看| 狠狠色综合色综合网络| 国产成人免费视频一区| av在线这里只有精品| 成人黄色777网| 色婷婷综合久久久久中文一区二区| 成人福利在线看| 在线亚洲一区观看| 91精品国产综合久久香蕉的特点| 日韩三级在线观看| 一区二区三区不卡视频在线观看| 2022国产精品视频| 国产日韩欧美a| 日本亚洲三级在线| 国内成人精品2018免费看| 欧美日韩另类一区| 一区二区三区不卡视频在线观看 | 91论坛在线播放| 26uuu精品一区二区三区四区在线| 亚洲一区二区欧美日韩| av亚洲精华国产精华| 精品国产乱码久久久久久1区2区 | 欧美日韩一级视频| 亚洲日本va午夜在线电影| 国产精品一区二区91| 欧美成人在线直播| 日本三级亚洲精品| 欧美一区二区三区在线观看视频| 亚洲狼人国产精品| 91久久国产综合久久| 亚洲欧美日韩小说| 色综合久久久久综合99| 综合欧美亚洲日本| 99久久久国产精品免费蜜臀| 综合激情成人伊人| 91网址在线看| 伊人性伊人情综合网| 一本一道综合狠狠老| 亚洲午夜三级在线| 欧美性猛片xxxx免费看久爱| 亚洲国产精品久久久久婷婷884| 欧美三电影在线| 美洲天堂一区二卡三卡四卡视频| 日韩欧美www| 成人综合婷婷国产精品久久蜜臀 | 亚洲第一福利一区| 欧亚一区二区三区| 蜜臀久久久久久久| 2017欧美狠狠色| 成人av网站在线观看| 亚洲卡通欧美制服中文| 欧美日韩国产免费一区二区| 日产国产欧美视频一区精品| 精品卡一卡二卡三卡四在线| 国产精品资源在线看| 国产精品人成在线观看免费| 精品视频999| 国产精品自拍三区| 亚洲一区二区偷拍精品| 日韩限制级电影在线观看| 国产69精品久久777的优势| 亚洲精品视频一区| 日韩欧美一级精品久久| 成人精品高清在线| 日韩电影免费在线| 中文字幕第一区综合| 欧美日韩色一区| 国产999精品久久久久久绿帽| 亚洲日本va午夜在线影院| 欧美一级在线免费| 9色porny自拍视频一区二区| 日韩国产欧美视频| 专区另类欧美日韩| 欧美一区二区三区喷汁尤物| eeuss鲁片一区二区三区在线观看| 五月婷婷综合在线| 亚洲图片你懂的| 久久色在线视频| 欧美亚洲日本国产| jlzzjlzz亚洲日本少妇| 久久99国产精品尤物| 亚洲午夜精品在线| 中文字幕一区二区不卡| 欧美一区三区四区| 色婷婷综合五月| 成年人国产精品| 欧美精品丝袜久久久中文字幕| 狠狠色狠狠色合久久伊人| 亚洲成年人网站在线观看| 国产清纯白嫩初高生在线观看91 | 亚洲一区二区三区四区在线| 久久综合一区二区| 在线播放91灌醉迷j高跟美女 | 伊人夜夜躁av伊人久久| 久久综合色婷婷| 欧美午夜精品久久久久久孕妇| 国产精品白丝jk黑袜喷水| 日日摸夜夜添夜夜添亚洲女人| 国产精品国产三级国产三级人妇 | 国产精品久久午夜夜伦鲁鲁| 亚洲精品在线观看视频| 69p69国产精品| 欧美群妇大交群的观看方式| 在线亚洲人成电影网站色www| 99麻豆久久久国产精品免费 | 视频一区二区三区在线| 一区二区在线观看视频| 成人免费一区二区三区视频| 中文字幕av一区二区三区高| 亚洲国产精品v| 欧美激情综合五月色丁香小说| 国产欧美一区二区三区网站| 久久久99久久精品欧美|