十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
下面這個(gè)例子在 add_action 鉤子中使用 init。使用 init 有兩個(gè)原因,一是因?yàn)槲覀冋谧NWordPress默認(rèn)的jQuery庫,然后加載谷歌的jQuery庫;二是確保在WordPress的頭部就加載腳本和CSS。
創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、電商網(wǎng)站制作開發(fā)、重慶小程序開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
使用if ( !is_admin() )是為了確保這些腳本和css只在前端加載,不會(huì)再后臺(tái)管理界面加載。
/** Google jQuery Library, Custom jQuery and CSS Files */
function myScripts() {
wp_register_script( 'google', '' );
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默認(rèn) jQuery 庫和主題自定義的腳本、樣式
第3行:使用 array(‘jquery’) 是為了告訴 WordPress 這個(gè) 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’是媒體屏幕調(diào)用,確保 print.css 在網(wǎng)站的打印機(jī)中的文件加載時(shí)才加載。
/** 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
如果你要在文章或頁面加載唯一的腳本,那就應(yīng)該使用 wp_enqueue_scripts 替換 init。使用 wp_enqueue_scripts 僅僅只會(huì)在前臺(tái)加載腳本和CSS,不會(huì)在后臺(tái)管理界面加載,所以沒必要使用 !is_admin() 判斷。
使用 is_single() 只在文章加載腳本或CSS
第 3 行的 # 替換為文章的ID就可以讓腳本和css只加載到那篇文章。當(dāng)然,如果直接使用 is_single() (不填I(lǐng)D),就會(huì)在所有文章加載腳本和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只加載到那個(gè)頁面。當(dāng)然,如果直接使用 is_single() (不填I(lǐng)D),就會(huì)在所有頁面加載腳本和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 加載腳本到后臺(tái)
這個(gè)例子將在整個(gè)后臺(tái)管理界面加載腳本和CSS。這個(gè)方法不推薦用在插件上,除非插件重建了整個(gè)后臺(tái)管理區(qū)。
第 10 行使用 admin_enqueue_scripts 替換了 init 或 wp_enqueue_scripts
第 5、6 行,如果你要自定義后臺(tái)管理區(qū),你可以需要禁用默認(rèn)的WordPress CSS調(diào)用。
/** 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 行:我無法弄清楚如何在在登錄頁面注冊(cè)/排序 CSS文件,所以這行手動(dòng)添加樣式表。
第 10-14行:用來移除WordPress默認(rèn)的樣式表。
/** 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' );
將 jQuery 庫移動(dòng)到頁腳
你不能將WordPress默認(rèn)的jQuery 庫移動(dòng)到頁面底部,但是你可以將自定義的jQuery 或其他外部jQuery 庫(比如Google的)移動(dòng)到底部。不要將CSS移動(dòng)到頁面底部。
第 3、4 行:最后的 ‘true’告訴WordPress在頁面底部加載這些腳本。
/** Moves jQuery to Footer */
function footerScript() {
wp_register_script('jquery', (""), 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' );
根據(jù)不用的用戶角色和功能加載jQuery和CSS
如果你的網(wǎng)站有作者、編輯和其他管理員,你可能需要通過 jQuery 來為他們顯示不同的信息。你需要使用 current_user_can 確定登錄的用戶的角色和功能 。
下面三個(gè)例子中,如果用戶已經(jīng)登錄,將在整個(gè)網(wǎng)站加載這些腳本和CSS。使用 !is_admin() 包裝 enqueue_script 確保只在前臺(tái)加載,或者在 add_action 使用 admin_enqueue_scripts 就可以確保只在后臺(tái)管理區(qū)加載。
為可以“編輯文章”的管理員加載腳本和CSS
只對(duì)超級(jí)管理員和網(wǎng)站管理員生效
/** 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,就可以被合并成一個(gè)單一的函數(shù)。
換句話說,您可以使用多個(gè) if 語句在一個(gè)函數(shù)中分裂了你的腳本和CSS調(diào)用,如:if_admin!if_admin,is_page,is_single和current_user_can的,因?yàn)槊看问褂孟嗤腶dd_action的init。
首先從網(wǎng)上下載出WordPress的插件Wp-syntax。
在編輯文章時(shí),使用HTML的編輯方式插入以下代碼pre lang=”LANGUAGE” line=”0″//“l(fā)ine為1時(shí)表示顯示行號(hào)”/pre
中間插入你的代碼即可,LANGUAGE改為語言類型,例如php、java。line為0不顯示行號(hào),為1時(shí)顯示
一般都是直接在主題的header.php文件中直接引用,部分主題也會(huì)在主題的functions.php文件中通過WP自帶的函數(shù)wp_enqueue_scripts來加載JS文件。
1、在主題header.php文件中直接引入文件,如
script?type='text/javascript'?src=''/script
或者
script?src="?php?echo?get_template_directory_uri();??/js/jquery/1.10.2/jquery-1.10.2.min.js"/script
2、在主題的functions.php文件中引入文件,如
function?my_enqueue_scripts()?{
if(?!is_admin?)?{?//?前臺(tái)加載的腳本與樣式表
//?去除已注冊(cè)的?jquery?腳本
wp_deregister_script(?'jquery'?);
//?注冊(cè)?jquery?腳本
wp_register_script(?'jquery',?get_template_directory_uri()?.?'/js/jquery/1.10.2/jquery-1.10.2.min.js',?false,?'1.0',?false?);
//?提交加載?jquery?腳本
wp_enqueue_script(?'jquery'?);
}?
}?
//?添加回調(diào)函數(shù)到?init?動(dòng)作上
add_action(?'init',?'my_enqueue_scripts'?);