有兩種常用的 add_action 鉤子可以載入 指令碼和CSS到WordPress:
init: 確保始終為您的網站頭部載入指令碼和CSS(如果使用home.php,index.php或一個模板檔案),以及其他“前端”文章、頁面和模板樣式。
wp_enqueue_scripts:“適當”的鉤子方法,並不總是有效,根據你的WordPress設定。
載入外部 jQuery 庫和主題自訂的指令碼、樣式
下面這個例子在 add_action 鉤子中使用 init。使用 init 有兩個原因,一是因為我們正在登出WordPress預設的jQuery庫,然後載入Google的jQuery庫;二是確保在WordPress的頭部就載入指令碼和CSS。
使用if ( !is_admin() )是為了確保這些指令碼和css只在前端載入,不會再後台管理介面載入。
/** Google jQuery Library, Custom jQuery and CSS Files */
function myScripts() {
wp_register_script( 'google', 'http://ajax.googleapis.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 僅僅只會在前台載入指令碼和CSS,不會在後台管理介面載入,所以沒必要使用 !is_admin() 判斷。