日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

正确加载 Javascript 和 CSS 到 WordPress

發布時間:2025/3/15 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正确加载 Javascript 和 CSS 到 WordPress 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? ?有兩種常用的 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只在前端加載,不會再后臺管理界面加載。
???

/**?Google?jQuery?Library,?Custom?jQuery?and?CSS?Files?*/?? function?myScripts()?{??wp_register_script(?'google',?'http://ajax.useso.com/ajax/libs/jquery/1.8.2/jquery.js'?);??wp_register_script(?'default',?get_template_directory_uri()?.?'/jquery.js'?);??wp_register_style(?'default',?get_template_directory_uri()?.?'/style.css'?);??if?(?!is_admin()?)?{?/**?Load?Scripts?and?Style?on?Website?Only?*/??wp_deregister_script(?'jquery'?);??wp_enqueue_script(?'google'?);??wp_enqueue_script(?'default'?);??wp_enqueue_style(?'default'?);??}?? }?? add_action(?'init',?'myScripts'?);

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

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

/**?Add?Custom?jQuery?and?CSS?files?to?a?Theme?*/?? function?myScripts()?{??wp_register_script(?'default',?get_template_directory_uri()?.?'/jquery.js',?array('jquery'),?''?);??wp_register_style(?'default',?get_template_directory_uri()?.?'/style.css'?);??if?(?!is_admin()?)?{?/**?Load?Scripts?and?Style?on?Website?Only?*/??wp_enqueue_script(?'default'?);??wp_enqueue_style(?'default'?);??}?? }?? add_action(?'init',?'myScripts'?);

加載 print.css 到你的WordPress主題

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

/**?Adding?a?Print?Stylesheet?to?a?Theme?*/?? function?myPrintCss()?{??wp_register_style(?'print',?get_template_directory_uri()?.?'/print.css',?'',?'',?'print'?);??if?(?!is_admin()?)?{?/**?Load?Scripts?and?Style?on?Website?Only?*/??wp_enqueue_style(?'print'?);??}?? }?? 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。

/**?Adding?Scripts?To?A?Unique?Post?*/?? function?myScripts()?{??if?(?is_single(#)?)?{?/**?Load?Scripts?and?Style?on?Posts?Only?*/??/**?Add?jQuery?and/or?CSS?Enqueue?*/??}?? }?? add_action(?'wp_enqueue_scripts',?'myScripts'?);


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

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

/**?Adding?Scripts?To?A?Unique?Page?*/?? function?myScripts()?{??if?(?is_page(#)?)?{?/**?Load?Scripts?and?Style?on?Pages?Only?*/??/**?Add?jQuery?and/or?CSS?Enqueue?*/??}?? }?? add_action(?'wp_enqueue_scripts',?'myScripts'?);

使用 admin_enqueue_scripts 加載腳本到后臺

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

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

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

/**?Adding?Scripts?To?The?WordPress?Admin?Area?Only?*/??function?myAdminScripts()?{??wp_register_script(?'default',?get_template_directory_uri()?.?'/jquery.js',?array('jquery'),?''?);??wp_enqueue_script(?'default'?);??//wp_deregister_style(?'ie'?);?/**?removes?ie?stylesheet?*/??//wp_deregister_style(?'colors'?);?/**?disables?default?css?*/??wp_register_style(?'default',?get_template_directory_uri()?.?'/style.css',??array(),?'',?'all'?);??wp_enqueue_style(?'default'?);?? }?? add_action(?'admin_enqueue_scripts',?'myAdminScripts'?);

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

第 6 行:我無法弄清楚如何在在登錄頁面注冊/排序 CSS文件,所以這行手動添加樣式表。
第 10-14行:用來移除WordPress默認的樣式表。

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

加載腳本和CSS到WordPress插件

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

從插件加載腳本和CSS

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

/**?Global?Plugin?Scripts?for?Outside?of?Website?*/?? function?pluginScripts()?{??wp_register_script(?'plugin',?plugins_url(?'jquery.js'?,?__FILE__?),?array('jquery'),?''?);??wp_register_style(?'plugin',?plugins_url(?'style.css'?,?__FILE__?)?);??if?(?!is_admin()?)?{?/**?Load?Scripts?and?Style?on?Website?Only?*/??wp_enqueue_script(?'plugin'?);??wp_enqueue_style(?'plugin'?);??}?? }?? add_action(?'init',?'pluginScripts'?);

從插件加載腳本和CSS到后臺管理區

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

/**?Global?Plugin?Scripts?for?The?WordPress?Admin?Area?*/?? function?pluginScripts()?{??wp_register_script(?'plugin',?plugins_url(?'jquery1.js'?,?__FILE__?),?array('jquery'),?''?);??wp_enqueue_script(?'plugin'?);??wp_register_style(?'plugin',?plugins_url(?'style1.css'?,?__FILE__?)?);??wp_enqueue_style(?'plugin'?);?? }?? add_action(?'admin_enqueue_scripts',?'pluginScripts'?);

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

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

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

/**?Adding?Scripts?On?A?Plugins?Settings?Page?*/?? function?pluginScripts()?{??if?(?$_GET['page']?==?"plugin_page_name.php"?)?{??wp_register_script(?'plugin',?plugins_url(?'jquery.js'?,?__FILE__?),?array('jquery'),?''?);??wp_enqueue_script(?'plugin'?);??wp_register_style(?'plugin',?plugins_url(?'style.css'?,?__FILE__?)?);??wp_enqueue_style(?'plugin'?);??}?? }?? add_action(?'admin_enqueue_scripts',?'pluginScripts'?);

將 jQuery 庫移動到頁腳

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

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

/**?Moves?jQuery?to?Footer?*/?? function?footerScript()?{??wp_register_script('jquery',?("http://ajax.useso.com/ajax/libs/jquery/1.8.2/jquery.js"),?false,?'',?true?);??wp_register_script(?'default',?get_template_directory_uri()?.?'/jquery.js',?false,?'',?true?);??if?(?!is_admin()?)?{?/**?Load?Scripts?and?Style?on?Website?Only?*/??wp_deregister_script(?'jquery'?);??wp_enqueue_script(?'jquery'?);??wp_enqueue_script(?'default'?);??}?? }?? add_action(?'init',?'footerScript'?);

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

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

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

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

/**?Add?CSS?&?jQuery?based?on?Roles?and?Capabilities?*/?? function?myScripts()?{??if?(?current_user_can('edit_posts')?)?{??/**?Add?jQuery?and/or?CSS?Enqueue?*/??}?? }?? add_action(?'init',?'myScripts'?);

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

/**?Admins?/?Authors?/?Contributors?/??Subscribers?*/?? function?myScripts()?{??if?(?current_user_can('read')?)?{??/**?Add?jQuery?and/or?CSS?Enqueue?*/??}?? }?? add_action(?'init',?'myScripts'?);

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

/**?Disable?for?Super?Admins?/?Admins?enable?for?Authors?/?Contributors?/??Subscribers?*/?? function?myScripts()?{??if?(?current_user_can('read')?&&?!current_user_can('edit_users')?)?{??/**?Add?jQuery?and/or?CSS?Enqueue?*/??}?? }?? add_action(?'init',?'myScripts'?);

最后的提示

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

??? 原文:http://technerdia.com/1789_include-jquery-css.html
??? 編譯:倡萌@WordPress大學

轉載于:https://my.oschina.net/ajian2014/blog/297554

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的正确加载 Javascript 和 CSS 到 WordPress的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。