Skip to content

Instantly share code, notes, and snippets.

@hellofromtonya
Created July 11, 2017 00:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save hellofromtonya/47c400647e8087459ffe4bce7a6f4d8b to your computer and use it in GitHub Desktop.
Save hellofromtonya/47c400647e8087459ffe4bce7a6f4d8b to your computer and use it in GitHub Desktop.
Twenty Seventeen Theme - Better Version Control
<?php
/**
* Asset Loaders and Helpers for Twenty Seventeen Theme
*
* @since 1.0.0
* @author hellofromTonya
* @link https://KnowTheCode.io
* @license GNU-2.0+
*/
add_action( 'wp_enqueue_scripts', 'twentyseventeen_scripts' );
/**
* Enqueue scripts and styles.
*/
function twentyseventeen_scripts() {
$version_number = get_theme_version();
// Add custom fonts, used in the main stylesheet.
wp_enqueue_style( 'twentyseventeen-fonts', twentyseventeen_fonts_url(), array(), null );
// Theme stylesheet.
wp_enqueue_style( 'twentyseventeen-style', get_stylesheet_uri(), array(), $version_number );
// Load the dark colorscheme.
if ( 'dark' === get_theme_mod( 'colorscheme', 'light' ) || is_customize_preview() ) {
wp_enqueue_style( 'twentyseventeen-colors-dark', get_theme_file_uri( '/assets/css/colors-dark.css' ), array( 'twentyseventeen-style' ), $version_number );
}
// Load the Internet Explorer 9 specific stylesheet, to fix display issues in the Customizer.
if ( is_customize_preview() ) {
wp_enqueue_style( 'twentyseventeen-ie9', get_theme_file_uri( '/assets/css/ie9.css' ), array( 'twentyseventeen-style' ), $version_number );
wp_style_add_data( 'twentyseventeen-ie9', 'conditional', 'IE 9' );
}
// Load the Internet Explorer 8 specific stylesheet.
wp_enqueue_style( 'twentyseventeen-ie8', get_theme_file_uri( '/assets/css/ie8.css' ), array( 'twentyseventeen-style' ), '1.0' );
wp_style_add_data( 'twentyseventeen-ie8', 'conditional', 'lt IE 9' );
// Load the html5 shiv.
wp_enqueue_script( 'html5', get_theme_file_uri( '/assets/js/html5.js' ), array(), '3.7.3' );
wp_script_add_data( 'html5', 'conditional', 'lt IE 9' );
wp_enqueue_script( 'twentyseventeen-skip-link-focus-fix', get_theme_file_uri( '/assets/js/skip-link-focus-fix.js' ), array(), '1.0', true );
$twentyseventeen_l10n = array(
'quote' => twentyseventeen_get_svg( array( 'icon' => 'quote-right' ) ),
);
if ( has_nav_menu( 'top' ) ) {
wp_enqueue_script( 'twentyseventeen-navigation', get_theme_file_uri( '/assets/js/navigation.js' ), array( 'jquery' ), '1.0', true );
$twentyseventeen_l10n['expand'] = __( 'Expand child menu', 'twentyseventeen' );
$twentyseventeen_l10n['collapse'] = __( 'Collapse child menu', 'twentyseventeen' );
$twentyseventeen_l10n['icon'] = twentyseventeen_get_svg( array( 'icon' => 'angle-down', 'fallback' => true ) );
}
wp_enqueue_script( 'twentyseventeen-global', get_theme_file_uri( '/assets/js/global.js' ), array( 'jquery' ), '1.0', true );
wp_enqueue_script( 'jquery-scrollto', get_theme_file_uri( '/assets/js/jquery.scrollTo.js' ), array( 'jquery' ), '2.1.2', true );
wp_localize_script( 'twentyseventeen-skip-link-focus-fix', 'twentyseventeenScreenReaderText', $twentyseventeen_l10n );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
function get_theme_version() {
$version_number = get_asset_current_version_number( get_stylesheet_directory() . '/style.css' );
if ( $version_number !== false ) {
return $version_number;
}
$theme = wp_get_theme();
return $theme->get('Version');
// if ( site_is_in_debug_mode() ) {
// $stylesheet = get_stylesheet_directory() . '/style.css';
//
// return filemtime( $stylesheet );
// }
//
// return '1.3';
}
function get_asset_current_version_number( $asset_file ) {
if ( ! site_is_in_debug_mode() ) {
return false;
}
return filemtime( $asset_file );
}
/**
* Checks if the site is in development/debug mode.
*
* @since 1.0.0
*
* @return bool
*/
function site_is_in_debug_mode() {
if ( ! defined( 'SCRIPT_DEBUG' ) ) {
return false;
}
return ( (bool) SCRIPT_DEBUG === true );
}
@hellofromtonya
Copy link
Author

This gist is for the Better Asset Versioning hands-on coding lab, episode 4 - Forget Hard Coding Version Number. Put this file into inc/support/asset-helpers.php.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment