Skip to content

Instantly share code, notes, and snippets.

@cythux

cythux/gist:5706064

Created Jun 4, 2013
Embed
What would you like to do?
scripts.php
<?php
/**
* Scripts and stylesheets
*
* Enqueue stylesheets in the following order:
* 1. /theme/assets/css/bootstrap.css
* 2. /theme/assets/css/bootstrap-responsive.css
* 3. /theme/assets/css/app.css
* 4. /child-theme/style.css (if a child theme is activated)
*
* Enqueue scripts in the following order:
* 1. jquery-1.9.1.min.js via Google CDN
* 2. /theme/assets/js/vendor/modernizr-2.6.2.min.js
* 3. /theme/assets/js/plugins.js (in footer)
* 4. /theme/assets/js/main.js (in footer)
*/
function c1nm_scripts() {
wp_enqueue_style('c1nm_bootstrap', get_template_directory_uri() . '/assets/css/bootstrap.css', false, null);
wp_enqueue_style('c1nm_bootstrap_responsive', get_template_directory_uri() . '/assets/css/bootstrap-responsive.css', array('c1nm_bootstrap'), null);
wp_enqueue_style('c1nm_app', get_template_directory_uri() . '/assets/css/app.css', false, null);
// Load style.css from child theme
if (is_child_theme()) {
wp_enqueue_style('c1nm_child', get_stylesheet_uri(), false, null);
}
// jQuery is loaded using the same method from HTML5 Boilerplate:
// Grab Google CDN's latest jQuery with a protocol relative URL; fallback to local if offline
// It's kept in the header instead of footer to avoid conflicts with plugins.
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', false, null, false);
}
if (is_single() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
wp_register_script('modernizr', get_template_directory_uri() . '/assets/js/vendor/modernizr-2.6.2.min.js', false, null, false);
wp_register_script('c1nm_plugins', get_template_directory_uri() . '/assets/js/plugins.js', false, null, true);
wp_register_script('c1nm_main', get_template_directory_uri() . '/assets/js/main.js', false, null, true);
wp_enqueue_script( 'fitvids', get_template_directory_uri() . '/assets/js/vendor/jquery.fitvids.min.js', array( 'jquery' ), '1.1' );
wp_enqueue_script('jquery');
wp_enqueue_script('modernizr');
wp_enqueue_script('c1nm_plugins');
wp_enqueue_script('c1nm_main');
}
add_action('wp_enqueue_scripts', 'c1nm_scripts', 100);
// http://wordpress.stackexchange.com/a/12450
function c1nm_jquery_local_fallback($src, $handle) {
static $add_jquery_fallback = false;
if ($add_jquery_fallback) {
echo '<script>window.jQuery || document.write(\'<script src="' . get_template_directory_uri() . '/assets/js/vendor/jquery-1.9.1.min.js"><\/script>\')</script>' . "\n";
$add_jquery_fallback = false;
}
if ($handle === 'jquery') {
$add_jquery_fallback = true;
}
return $src;
}
if (!is_admin()) {
add_filter('script_loader_src', 'c1nm_jquery_local_fallback', 10, 2);
}
function c1nm_google_analytics() { ?>
<script>
var _gaq=[['_setAccount','<?php echo GOOGLE_ANALYTICS_ID; ?>'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
<?php }
if (GOOGLE_ANALYTICS_ID) {
add_action('wp_footer', 'c1nm_google_analytics', 20);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment