understrap/inc/enqueue.php

76 lines
2.4 KiB
PHP

<?php
/**
* Understrap enqueue scripts
*
* @package Understrap
*/
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
if ( ! function_exists( 'understrap_scripts' ) ) {
/**
* Load theme's JavaScript and CSS sources.
*/
function understrap_scripts() {
// Get the theme data.
$the_theme = wp_get_theme();
$theme_version = $the_theme->get( 'Version' );
$bootstrap_version = get_theme_mod( 'understrap_bootstrap_version', 'bootstrap4' );
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
// Grab asset urls.
$theme_styles = "/css/theme{$suffix}.css";
$theme_scripts = "/js/theme{$suffix}.js";
if ( 'bootstrap4' === $bootstrap_version ) {
$theme_styles = "/css/theme-bootstrap4{$suffix}.css";
$theme_scripts = "/js/theme-bootstrap4{$suffix}.js";
}
$css_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_styles );
wp_enqueue_style( 'understrap-styles', get_template_directory_uri() . $theme_styles, array(), $css_version );
// Fix that the offcanvas close icon is hidden behind the admin bar.
if ( 'bootstrap4' !== $bootstrap_version && is_admin_bar_showing() ) {
understrap_offcanvas_admin_bar_inline_styles();
}
wp_enqueue_script( 'jquery' );
$js_version = $theme_version . '.' . filemtime( get_template_directory() . $theme_scripts );
wp_enqueue_script( 'understrap-scripts', get_template_directory_uri() . $theme_scripts, array(), $js_version, true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
} // End of if function_exists( 'understrap_scripts' ).
add_action( 'wp_enqueue_scripts', 'understrap_scripts' );
if ( ! function_exists( 'understrap_offcanvas_admin_bar_inline_styles' ) ) {
/**
* Add inline styles for the offcanvas component if the admin bar is visible.
*
* Fixes that the offcanvas close icon is hidden behind the admin bar.
*
* @since 1.2.0
*/
function understrap_offcanvas_admin_bar_inline_styles() {
$navbar_type = get_theme_mod( 'understrap_navbar_type', 'collapse' );
if ( 'offcanvas' !== $navbar_type ) {
return;
}
$css = '
body.admin-bar .offcanvas.show {
margin-top: 32px;
}
@media screen and ( max-width: 782px ) {
body.admin-bar .offcanvas.show {
margin-top: 46px;
}
}';
wp_add_inline_style( 'understrap-styles', $css );
}
}