manifest = json_decode(file_get_contents($manifest_path), true); } else { $this->manifest = []; } } public function get() { return $this->manifest; } } function asset_path($filename) { $dist_path = get_template_directory_uri() . '/dist/'; $directory = dirname($filename) . '/'; $file = basename($filename); static $manifest; if (empty($manifest)) { $manifest_path = get_template_directory() . '/dist/assets.json'; $manifest = new JsonManifest($manifest_path); $manifest = $manifest->get(); } if (WP_ENV !== 'development' && array_key_exists($file, $manifest)) { return $dist_path . $directory . $manifest[$file]; } else { return $dist_path . $directory . $file; } } function assets() { wp_enqueue_style('sage_css', asset_path('styles/main.css'), false, null); /** * Grab Google CDN's latest jQuery with a protocol relative URL; fallback to local if offline * jQuery & Modernizr load in the footer per HTML5 Boilerplate's recommendation: http://goo.gl/nMGR7P * If a plugin enqueues jQuery-dependent scripts in the head, jQuery will load in the head to meet the plugin's dependencies * To explicitly load jQuery in the head, change the last wp_enqueue_script parameter to false */ if (!is_admin() && current_theme_supports('jquery-cdn')) { wp_deregister_script('jquery'); wp_register_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', [], null, true); add_filter('script_loader_src', __NAMESPACE__ . '\\jquery_local_fallback', 10, 2); } if (is_single() && comments_open() && get_option('thread_comments')) { wp_enqueue_script('comment-reply'); } wp_enqueue_script('modernizr', asset_path('scripts/modernizr.js'), [], null, true); wp_enqueue_script('jquery'); wp_enqueue_script('sage_js', asset_path('scripts/main.js'), [], null, true); } add_action('wp_enqueue_scripts', __NAMESPACE__ . '\\assets', 100); // http://wordpress.stackexchange.com/a/12450 function jquery_local_fallback($src, $handle = null) { static $add_jquery_fallback = false; if ($add_jquery_fallback) { echo '' . "\n"; $add_jquery_fallback = false; } if ($handle === 'jquery') { $add_jquery_fallback = true; } return $src; } add_action('wp_head', __NAMESPACE__ . '\\jquery_local_fallback'); /** * Google Analytics snippet from HTML5 Boilerplate * * Cookie domain is 'auto' configured. See: http://goo.gl/VUCHKM */ function google_analytics() { ?>