亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > Wordpress > 正文

WordPress正確加載 Javascript 和 CSS的方法總結

2024-09-07 00:52:13
字體:
來源:轉載
供稿:網友

WordPress判斷用戶角色和權限等級及整合數據庫導致后臺登錄無權限

WordPress正確加載 Javascript 和 CSS是非常的重要的,加載的好網頁打開速度與性能都會比較不錯,否則可能出現一些打開卡或頁面亂的現象了,下面我們就一起來看看。

正確加載 jQuery、Javascript 和 CSS 到你的WordPress網站也許是一件比較痛苦的事情,本文將講解如何使用WordPress官方推薦的方式來加載腳本/ CSS。

有兩種常用的 add_action 鉤子可以加載 腳本和CSS到WordPress:

•init: 確保始終為您的網站頭部加載腳本和CSS(如果使用home.php,index.php或一個模板文件),以及其他“前端”文章、頁面和模板樣式。

•wp_enqueue_scripts:“適當”的鉤子方法,并不總是有效的,根據你的WordPress設置。

下面的所有例子都在WordPress多站點模式、WordPress 3.4.2 通過測試(如果不支持后續版本,請留言告知)

加載外部 jQuery 庫和主題自定義的腳本、樣式

下面這個例子在 add_action 鉤子中使用 init。使用 init 有兩個原因,一是因為我們正在注銷WordPress默認的jQuery庫,然后加載谷歌的jQuery庫;二是確保在WordPress的頭部就加載腳本和CSS。

使用if ( !is_admin() )是為了確保這些腳本和css只在前端加載,不會再后臺管理界面加載。

  1.  /** Google jQuery Library, Custom jQuery and CSS Files */   
  2. function myScripts() {   
  3.         wp_register_script( 'google''http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js' );   
  4.         wp_register_script( 'default', get_template_directory_uri() . '/jquery.js' );   
  5.         wp_register_style( 'default', get_template_directory_uri() . '/style.css' );   
  6.     if ( !is_admin() ) { /** Load Scripts and Style on Website Only */   
  7.         wp_deregister_script( 'jquery' );   
  8.         wp_enqueue_script( 'google' );   
  9.         wp_enqueue_script( 'default' );   
  10.         wp_enqueue_style( 'default' );   
  11.     }  //Vevb.com 
  12. }   
  13. add_action( 'init''myScripts' ); 

加載WP默認 jQuery 庫和主題自定義的腳本、樣式.

第3行:使用 array('jquery') 是為了告訴 WordPress 這個 jquery.js 是依賴WordPress 的jQuery庫文件,從而使 jquery.js 在WordPress jQuery庫文件后加載。

  1.  /** Add Custom jQuery and CSS files to a Theme */   
  2. function myScripts() {   
  3.         wp_register_script( 'default', get_template_directory_uri() . '/jquery.js'array('jquery'), '' );   
  4.         wp_register_style( 'default', get_template_directory_uri() . '/style.css' );   
  5.     if ( !is_admin() ) { /** Load Scripts and Style on Website Only */   
  6.         wp_enqueue_script( 'default' );   
  7.         wp_enqueue_style( 'default' );   
  8.     }   
  9. }   
  10. add_action( 'init''myScripts' ); 

加載 print.css 到你的WordPress主題.

第 3 行:最后的 ‘print’是媒體屏幕調用,確保 print.css 在網站的打印機中的文件加載時才加載.

  1. /** Adding a Print Stylesheet to a Theme */   
  2. function myPrintCss() {   
  3.         wp_register_style( 'print', get_template_directory_uri() . '/print.css''''''print' );   
  4.     if ( !is_admin() ) { /** Load Scripts and Style on Website Only */   
  5.         wp_enqueue_style( 'print' );   
  6.     }   
  7. }   
  8. add_action( 'init''myPrintCss' );  

使用 wp_enqueue_scripts 替換 init.

如果你要在文章或頁面加載唯一的腳本,那就應該使用 wp_enqueue_scripts 替換 init。使用 wp_enqueue_scripts 僅僅只會在前臺加載腳本和CSS,不會在后臺管理界面加載,所以沒必要使用 !is_admin() 判斷。

使用 is_single() 只在文章加載腳本或CSS.

第 3 行的 # 替換為文章的ID就可以讓腳本和css只加載到那篇文章。當然,如果直接使用 is_single() (不填ID),就會在所有文章加載腳本和CSS。

  1. /** Adding Scripts To A Unique Post */   
  2. function myScripts() {   
  3.     if ( is_single(#) ) { /** Load Scripts and Style on Posts Only */   
  4.        /** Add jQuery and/or CSS Enqueue */   
  5.     }   
  6. }   
  7. add_action( 'wp_enqueue_scripts''myScripts' ); 

使用 is_page() 只在頁面加載腳本或CSS.

第 3 行的 # 替換為頁面的ID就可以讓腳本和css只加載到那個頁面,當然,如果直接使用 is_single()(不填ID),就會在所有頁面加載腳本和CSS.

  1. /** Adding Scripts To A Unique Page */   
  2. function myScripts() {   
  3.     if ( is_page(#) ) { /** Load Scripts and Style on Pages Only */   
  4.        /** Add jQuery and/or CSS Enqueue */   
  5.     }   
  6. }   
  7. add_action( 'wp_enqueue_scripts''myScripts' );  

使用 admin_enqueue_scripts 加載腳本到后臺.

這個例子將在整個后臺管理界面加載腳本和CSS,這個方法不推薦用在插件上,除非插件重建了整個后臺管理區.

第 10 行使用 admin_enqueue_scripts 替換了 init 或 wp_enqueue_scripts

第 5、6 行,如果你要自定義后臺管理區,你可以需要禁用默認的WordPress CSS調用.

  1. /** Adding Scripts To The WordPress Admin Area Only */   
  2. function myAdminScripts() {   
  3.     wp_register_script( 'default', get_template_directory_uri() . '/jquery.js'array('jquery'), '' );   
  4.     wp_enqueue_script( 'default' );   
  5.     //wp_deregister_style( 'ie' ); /** removes ie stylesheet */   
  6.     //wp_deregister_style( 'colors' ); /** disables default css */   
  7.     wp_register_style( 'default', get_template_directory_uri() . '/style.css',  array(), '''all' );   
  8.     wp_enqueue_style( 'default' );   
  9. }   
  10. add_action( 'admin_enqueue_scripts''myAdminScripts' );  

加載腳本和CSS到WordPress登錄界面.

第 6 行:我無法弄清楚如何在在登錄頁面注冊/排序 CSS文件,所以這行手動添加樣式表。

第 10-14行:用來移除WordPress默認的樣式表.

  1. /** Adding Scripts To The WordPress Login Page */   
  2. function myLoginScripts() {   
  3.     wp_register_script( 'default', get_template_directory_uri() . '/jquery.js'array('jquery'), '' );   
  4.     wp_enqueue_script( 'default' );   
  5. ?>   
  6.     <link rel='stylesheet' id='default-css' href='<?php echo get_template_directory_uri() . '/style.css';?>' type='text/css' media='all' />   
  7. <?php }   
  8. add_action( 'login_enqueue_scripts''myLoginScripts' );   
  9. /** Deregister the login css files */   
  10. function removeScripts() {   
  11.     wp_deregister_style( 'wp-admin' );   
  12.     wp_deregister_style( 'colors-fresh' );   
  13. }   
  14. add_action( 'login_init''removeScripts' );  

加載腳本和CSS到WordPress插件.

WordPress插件加載腳本和CSS也是常見的,主要的不同之處在于文件的 URL,主題使用的是 get_template_directory_uri,而插件應該用 plugins_url,因為文件是從插件目錄進行加載的.

從插件加載腳本和CSS.

這個例子將在整個網站前端加載腳本和CSS.

  1. /** Global Plugin Scripts for Outside of Website */   
  2. function pluginScripts() {   
  3.     wp_register_script( 'plugin', plugins_url( 'jquery.js' , __FILE__ ), array('jquery'), '' );   
  4.     wp_register_style( 'plugin', plugins_url( 'style.css' , __FILE__ ) );   
  5.     if ( !is_admin() ) { /** Load Scripts and Style on Website Only */   
  6.         wp_enqueue_script( 'plugin' );   
  7.         wp_enqueue_style( 'plugin' );   
  8.     }   
  9. }   
  10. add_action( 'init''pluginScripts' ); 

從插件加載腳本和CSS到后臺管理區,如果你需要在整個后臺管理區加載腳本和CSS,就使用 admin_enqueue_scripts 替換 init.

  1. /** Global Plugin Scripts for The WordPress Admin Area */   
  2. function pluginScripts() {   
  3.     wp_register_script( 'plugin', plugins_url( 'jquery1.js' , __FILE__ ), array('jquery'), '' );   
  4.     wp_enqueue_script( 'plugin' );   
  5.     wp_register_style( 'plugin', plugins_url( 'style1.css' , __FILE__ ) );   
  6.     wp_enqueue_style( 'plugin' );   
  7. }   
  8. add_action( 'admin_enqueue_scripts''pluginScripts' );  

從插件加載腳本和CSS到插件設置頁面.

例子只會加載所需的腳本和CSS到插件設置頁面,不會在管理區的其他頁面加載.

第 3 行:自定義 page= 后面的值為你的插件設置頁面

  1. /** Adding Scripts On A Plugins Settings Page */   
  2. function pluginScripts() {   
  3.     if ( $_GET['page'] == "plugin_page_name.php" ) {   
  4.         wp_register_script( 'plugin', plugins_url( 'jquery.js' , __FILE__ ), array('jquery'), '' );   
  5.         wp_enqueue_script( 'plugin' );   
  6.         wp_register_style( 'plugin', plugins_url( 'style.css' , __FILE__ ) );   
  7.         wp_enqueue_style( 'plugin' );   
  8.     }   
  9. }   
  10. add_action( 'admin_enqueue_scripts''pluginScripts' );  

將 jQuery 庫移動到頁腳

你不能將WordPress默認的jQuery 庫移動到頁面底部,但是你可以將自定義的jQuery 或其他外部jQuery 庫(比如Google的)移動到底部。不要將CSS移動到頁面底部。

第 3、4 行:最后的 ‘true’告訴WordPress在頁面底部加載這些腳本。

  1. /** Moves jQuery to Footer */   
  2. function footerScript() {   
  3.         wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"), false, '', true );   
  4.         wp_register_script( 'default', get_template_directory_uri() . '/jquery.js', false, '', true );   
  5.     if ( !is_admin() ) { /** Load Scripts and Style on Website Only */   
  6.         wp_deregister_script( 'jquery' );   
  7.         wp_enqueue_script( 'jquery' );   
  8.         wp_enqueue_script( 'default' );   
  9.     }   
  10. }   
  11. add_action( 'init''footerScript' );  

根據不用的用戶角色和功能加載jQuery和CSS

如果你的網站有作者、編輯和其他管理員,你可能需要通過 jQuery 來為他們顯示不同的信息。你需要使用 current_user_can 確定登錄的用戶的 角色和功能 。

下面三個例子中,如果用戶已經登錄,將在整個網站加載這些腳本和CSS。使用 !is_admin() 包裝 enqueue_script 確保只在前臺加載,或者在 add_action 使用 admin_enqueue_scripts 就可以確保只在后臺管理區加載。

為可以“編輯文章”的管理員加載腳本和CSS

只對超級管理員和網站管理員生效

  1. /** Add CSS & jQuery based on Roles and Capabilities */   
  2. function myScripts() {   
  3.     if ( current_user_can('edit_posts') ) {   
  4.         /** Add jQuery and/or CSS Enqueue */   
  5.     }   
  6. }   
  7. add_action( 'init''myScripts' ); 

為所有登錄用戶加載腳本和CSS

  1. /** Admins / Authors / Contributors /  Subscribers */   
  2. function myScripts() {   
  3.     if ( current_user_can('read') ) {   
  4.         /** Add jQuery and/or CSS Enqueue */   
  5.     }   
  6. }   
  7. add_action( 'init''myScripts' ); 

為管理員以外的已登錄用戶加載腳本和CSS

  1. /** Disable for Super Admins / Admins enable for Authors / Contributors /  Subscribers */   
  2. function myScripts() {   
  3.     if ( current_user_can('read') && !current_user_can('edit_users') ) {   
  4.         /** Add jQuery and/or CSS Enqueue */   
  5.     }   
  6. }   
  7. add_action( 'init''myScripts' ); 

最后的提示:

上面的例子如果使用相同的add_action,就可以被合并成一個單一的函數,換句話說,您可以使用多個 if 語句在一個函數中分裂了你的腳本和CSS調用,如:if_admin!if_admin,is_page,is_single和current_user_can的,因為每次使用相同的add_action的init.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品中文字幕av| 国内精品伊人久久| 国产成人啪精品视频免费网| 日韩欧美中文第一页| 久久深夜福利免费观看| 国产精品香蕉av| 亚洲国产欧美精品| 日韩国产精品视频| 日韩中文在线中文网三级| 欧美日韩中文在线观看| 在线播放日韩精品| 亚洲精品久久久久久久久久久久| 亚洲精美色品网站| 欧美一区二区大胆人体摄影专业网站| 欧美与黑人午夜性猛交久久久| 亚洲欧美日韩天堂| 欧美成人免费播放| 国产中文日韩欧美| 久久久视频免费观看| 欧美日韩在线视频首页| 亚洲女成人图区| 91在线观看免费网站| 福利视频导航一区| 欧美成aaa人片在线观看蜜臀| 日本成人在线视频网址| 国产日韩欧美中文| 久久精品国产69国产精品亚洲| 欧美在线观看一区二区三区| 亚洲欧洲国产精品| 日韩黄色av网站| 欧美激情一级欧美精品| 色视频www在线播放国产成人| 97婷婷涩涩精品一区| 国产精品视频大全| 久久精视频免费在线久久完整在线看| 黄色一区二区三区| 国产999精品视频| 亚洲精品视频在线播放| 亚洲一区二区三区四区视频| 日韩综合中文字幕| 国产精品第10页| 久久久久久久久爱| 国产精品网红直播| 国产精品海角社区在线观看| 91理论片午午论夜理片久久| 亚洲第一福利网站| 国产欧美一区二区三区四区| 久久伊人91精品综合网站| 亚洲午夜未删减在线观看| 草民午夜欧美限制a级福利片| 久久久精品亚洲| 国产精品午夜国产小视频| 日韩免费精品视频| 91精品国产乱码久久久久久蜜臀| 国产区亚洲区欧美区| 欧美激情在线观看视频| 欧美高清在线视频观看不卡| 亚洲jizzjizz日本少妇| 日韩精品在线免费观看| 亚洲精品v天堂中文字幕| 91精品国产91久久久久| 欧美人成在线视频| 性欧美暴力猛交69hd| 日本午夜人人精品| 美女999久久久精品视频| 欧美性理论片在线观看片免费| 亚洲国产精品久久久久秋霞不卡| 免费97视频在线精品国自产拍| 亚洲一级片在线看| 欧美午夜精品久久久久久人妖| 毛片精品免费在线观看| 日韩高清电影免费观看完整| 国产综合久久久久久| 欧美精品免费在线观看| 亚洲毛片在线免费观看| 91精品国产高清久久久久久| 日韩一区二区欧美| 亚洲美女在线观看| 久久综合久久八八| 日本91av在线播放| 日韩视频欧美视频| www.日韩不卡电影av| 国产日韩在线精品av| 亚洲精品不卡在线| 久久999免费视频| 91精品91久久久久久| 91亚洲精品在线观看| 精品国产户外野外| 97视频在线观看网址| 国产欧美日韩综合精品| 青青草原成人在线视频| 黄色精品一区二区| 欧美日韩亚洲国产一区| 精品免费在线观看| 国产日韩欧美在线看| 日韩精品视频三区| 亚洲自拍偷拍福利| 精品国产户外野外| 91精品国产91久久久久久| 久久综合久久美利坚合众国| 国产精选久久久久久| 日韩一区二区三区国产| 国产精品久久久久久久久久久新郎| 久久亚洲精品成人| 精品无人区乱码1区2区3区在线| 久久夜色精品国产欧美乱| 亚洲欧美国产日韩中文字幕| 国产精品久久久一区| 成人中文字幕在线观看| 中文字幕久久亚洲| 国产精品人人做人人爽| xvideos成人免费中文版| 亚洲女在线观看| 中文字幕综合一区| 在线观看日韩视频| 热99精品只有里视频精品| 国产成人精品电影| 国产精品久久久久久久久免费看| 色黄久久久久久| 国产精品丝袜一区二区三区| 97国产精品人人爽人人做| 色悠悠久久88| 在线播放亚洲激情| 国产丝袜一区视频在线观看| 欧美天天综合色影久久精品| 国语自产精品视频在免费| …久久精品99久久香蕉国产| 日本精品久久久| 精品高清一区二区三区| 久久亚洲精品小早川怜子66| 欧美精品一区二区免费| 欧美日韩在线一区| 欧美精品videossex88| 欧美性jizz18性欧美| 欧美日韩一区二区免费在线观看| 78m国产成人精品视频| 91精品国产综合久久男男| 九九视频这里只有精品| 亚洲精品女av网站| 亚洲黄色在线看| 精品国产乱码久久久久酒店| 亚洲免费精彩视频| 一区二区三区四区在线观看视频| 日韩av在线一区二区| 欧美xxxx18性欧美| 亚洲大尺度美女在线| 亚洲一区二区三区在线免费观看| 欧美午夜无遮挡| 国内精品国产三级国产在线专| 在线成人免费网站| 亚洲欧美日韩第一区| 亚洲色图美腿丝袜| 亚洲剧情一区二区| 亚洲电影第1页| 欧美最顶级丰满的aⅴ艳星| 国产91对白在线播放| 国产精品久久久久久久久久免费| 国产偷亚洲偷欧美偷精品| 欧美亚洲午夜视频在线观看| 亚洲一区二区三区四区在线播放| 国产精品国产三级国产aⅴ浪潮| 欧美精品video| 欧美视频在线观看 亚洲欧| www国产亚洲精品久久网站|