jQuery技术

如何正确加载Javascript和CSS

字号+ 作者:H5之家 来源:H5之家 2015-11-12 08:25 我要评论( )

《如何正确加载Javascript和CSS》简介:现在许多WordPress网站都开始讲要正确加载 jQuery、Javascript 和 CSS 到你的WordPress网站。之前也分享过一篇用wp_enqueu

现在许多WordPress网站都开始讲要正确加载 jQuery、Javascript 和 CSS 到你的WordPress网站。之前也分享过一篇用wp_enqueue_script()和wp_enqueue_style()加载脚本与样式提高效率的文章。今天来一篇更详细讲解如何使用WordPress官方推荐的方式来加载脚本/ CSS的文章。


WordPress如何正确加载Javascript和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只在前端加载,不会再后台管理界面加载。


/** 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默认 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。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
{