2016-01-20 16:02:53 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Storefront Class
|
|
|
|
*
|
|
|
|
* @since 2.0.0
|
2016-02-19 16:57:56 +00:00
|
|
|
* @package storefront
|
2016-01-20 16:02:53 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( ! class_exists( 'Storefront' ) ) :
|
|
|
|
|
|
|
|
/**
|
2016-02-19 16:57:56 +00:00
|
|
|
* The main Storefront class
|
2016-01-20 16:02:53 +00:00
|
|
|
*/
|
2016-02-19 16:57:56 +00:00
|
|
|
class Storefront {
|
2016-01-20 16:02:53 +00:00
|
|
|
|
|
|
|
/**
|
2016-02-19 16:57:56 +00:00
|
|
|
* Setup class.
|
|
|
|
*
|
|
|
|
* @since 1.0
|
2016-01-20 16:02:53 +00:00
|
|
|
*/
|
2016-02-19 16:57:56 +00:00
|
|
|
public function __construct() {
|
2018-06-22 15:11:39 +01:00
|
|
|
add_action( 'after_setup_theme', array( $this, 'setup' ) );
|
|
|
|
add_action( 'widgets_init', array( $this, 'widgets_init' ) );
|
|
|
|
add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ), 10 );
|
|
|
|
add_action( 'wp_enqueue_scripts', array( $this, 'child_scripts' ), 30 ); // After WooCommerce.
|
2019-05-02 11:58:04 +01:00
|
|
|
add_action( 'enqueue_block_assets', array( $this, 'block_assets' ) );
|
2018-06-22 15:11:39 +01:00
|
|
|
add_filter( 'body_class', array( $this, 'body_classes' ) );
|
|
|
|
add_filter( 'wp_page_menu_args', array( $this, 'page_menu_args' ) );
|
2016-08-01 11:17:10 +01:00
|
|
|
add_filter( 'navigation_markup_template', array( $this, 'navigation_markup_template' ) );
|
2018-06-22 15:11:39 +01:00
|
|
|
add_action( 'enqueue_embed_scripts', array( $this, 'print_embed_styles' ) );
|
2016-06-01 12:26:01 +01:00
|
|
|
}
|
2016-01-20 16:02:53 +00:00
|
|
|
|
2016-02-19 16:57:56 +00:00
|
|
|
/**
|
|
|
|
* Sets up theme defaults and registers support for various WordPress features.
|
2016-01-20 16:02:53 +00:00
|
|
|
*
|
2016-02-19 16:57:56 +00:00
|
|
|
* Note that this function is hooked into the after_setup_theme hook, which
|
|
|
|
* runs before the init hook. The init hook is too late for some features, such
|
|
|
|
* as indicating support for post thumbnails.
|
2016-01-20 16:02:53 +00:00
|
|
|
*/
|
2016-02-19 16:57:56 +00:00
|
|
|
public function setup() {
|
|
|
|
/*
|
|
|
|
* Load Localisation files.
|
|
|
|
*
|
|
|
|
* Note: the first-loaded translation file overrides any following ones if the same translation is present.
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Loads wp-content/languages/themes/storefront-it_IT.mo.
|
2018-12-04 11:31:18 +00:00
|
|
|
load_theme_textdomain( 'storefront', trailingslashit( WP_LANG_DIR ) . 'themes' );
|
2016-02-19 16:57:56 +00:00
|
|
|
|
|
|
|
// Loads wp-content/themes/child-theme-name/languages/it_IT.mo.
|
|
|
|
load_theme_textdomain( 'storefront', get_stylesheet_directory() . '/languages' );
|
|
|
|
|
|
|
|
// Loads wp-content/themes/storefront/languages/it_IT.mo.
|
|
|
|
load_theme_textdomain( 'storefront', get_template_directory() . '/languages' );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Add default posts and comments RSS feed links to head.
|
|
|
|
*/
|
|
|
|
add_theme_support( 'automatic-feed-links' );
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Enable support for Post Thumbnails on posts and pages.
|
|
|
|
*
|
2018-01-04 19:35:25 +05:30
|
|
|
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#Post_Thumbnails
|
2016-02-19 16:57:56 +00:00
|
|
|
*/
|
|
|
|
add_theme_support( 'post-thumbnails' );
|
|
|
|
|
2016-03-18 14:34:16 +00:00
|
|
|
/**
|
2018-06-04 14:30:16 +01:00
|
|
|
* Enable support for site logo.
|
2016-03-18 14:34:16 +00:00
|
|
|
*/
|
2018-06-22 15:11:39 +01:00
|
|
|
add_theme_support(
|
2020-09-17 11:28:22 +12:00
|
|
|
'custom-logo',
|
|
|
|
apply_filters(
|
|
|
|
'storefront_custom_logo_args',
|
|
|
|
array(
|
2018-06-22 15:11:39 +01:00
|
|
|
'height' => 110,
|
|
|
|
'width' => 470,
|
|
|
|
'flex-width' => true,
|
|
|
|
'flex-height' => true,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
2016-03-18 14:34:16 +00:00
|
|
|
|
2018-06-04 14:30:16 +01:00
|
|
|
/**
|
|
|
|
* Register menu locations.
|
|
|
|
*/
|
2018-06-22 15:11:39 +01:00
|
|
|
register_nav_menus(
|
|
|
|
apply_filters(
|
2020-09-17 11:28:22 +12:00
|
|
|
'storefront_register_nav_menus',
|
|
|
|
array(
|
2018-06-22 15:11:39 +01:00
|
|
|
'primary' => __( 'Primary Menu', 'storefront' ),
|
|
|
|
'secondary' => __( 'Secondary Menu', 'storefront' ),
|
|
|
|
'handheld' => __( 'Handheld Menu', 'storefront' ),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
2016-02-19 16:57:56 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Switch default core markup for search form, comment form, comments, galleries, captions and widgets
|
|
|
|
* to output valid HTML5.
|
|
|
|
*/
|
2018-06-22 15:11:39 +01:00
|
|
|
add_theme_support(
|
2020-09-17 11:28:22 +12:00
|
|
|
'html5',
|
|
|
|
apply_filters(
|
|
|
|
'storefront_html5_args',
|
|
|
|
array(
|
2018-06-22 15:11:39 +01:00
|
|
|
'search-form',
|
|
|
|
'comment-form',
|
|
|
|
'comment-list',
|
|
|
|
'gallery',
|
|
|
|
'caption',
|
|
|
|
'widgets',
|
2020-04-13 01:47:45 +02:00
|
|
|
'style',
|
|
|
|
'script',
|
2018-06-22 15:11:39 +01:00
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
2016-02-19 16:57:56 +00:00
|
|
|
|
2018-06-04 14:30:16 +01:00
|
|
|
/**
|
|
|
|
* Setup the WordPress core custom background feature.
|
|
|
|
*/
|
2018-06-22 15:11:39 +01:00
|
|
|
add_theme_support(
|
2020-09-17 11:28:22 +12:00
|
|
|
'custom-background',
|
|
|
|
apply_filters(
|
|
|
|
'storefront_custom_background_args',
|
|
|
|
array(
|
2018-06-22 15:11:39 +01:00
|
|
|
'default-color' => apply_filters( 'storefront_default_background_color', 'ffffff' ),
|
|
|
|
'default-image' => '',
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
2016-02-19 16:57:56 +00:00
|
|
|
|
2018-06-05 10:53:32 +01:00
|
|
|
/**
|
|
|
|
* Setup the WordPress core custom header feature.
|
|
|
|
*/
|
2018-06-22 15:11:39 +01:00
|
|
|
add_theme_support(
|
2020-09-17 11:28:22 +12:00
|
|
|
'custom-header',
|
|
|
|
apply_filters(
|
|
|
|
'storefront_custom_header_args',
|
|
|
|
array(
|
2018-06-22 15:11:39 +01:00
|
|
|
'default-image' => '',
|
|
|
|
'header-text' => false,
|
|
|
|
'width' => 1950,
|
|
|
|
'height' => 500,
|
|
|
|
'flex-width' => true,
|
|
|
|
'flex-height' => true,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
2018-06-05 10:53:32 +01:00
|
|
|
|
2018-06-04 14:30:16 +01:00
|
|
|
/**
|
|
|
|
* Declare support for title theme feature.
|
|
|
|
*/
|
2016-02-19 16:57:56 +00:00
|
|
|
add_theme_support( 'title-tag' );
|
2016-08-03 10:03:48 +01:00
|
|
|
|
2018-06-04 14:30:16 +01:00
|
|
|
/**
|
|
|
|
* Declare support for selective refreshing of widgets.
|
|
|
|
*/
|
2016-08-03 10:03:48 +01:00
|
|
|
add_theme_support( 'customize-selective-refresh-widgets' );
|
2018-10-31 16:03:25 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Add support for Block Styles.
|
|
|
|
*/
|
|
|
|
add_theme_support( 'wp-block-styles' );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Add support for full and wide align images.
|
|
|
|
*/
|
|
|
|
add_theme_support( 'align-wide' );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Add support for editor styles.
|
|
|
|
*/
|
|
|
|
add_theme_support( 'editor-styles' );
|
|
|
|
|
2019-06-21 19:38:05 +01:00
|
|
|
/**
|
|
|
|
* Add support for editor font sizes.
|
|
|
|
*/
|
2020-09-17 11:28:22 +12:00
|
|
|
add_theme_support(
|
|
|
|
'editor-font-sizes',
|
2019-06-21 19:38:05 +01:00
|
|
|
array(
|
2020-09-17 11:28:22 +12:00
|
|
|
array(
|
|
|
|
'name' => __( 'Small', 'storefront' ),
|
|
|
|
'size' => 14,
|
|
|
|
'slug' => 'small',
|
|
|
|
),
|
|
|
|
array(
|
|
|
|
'name' => __( 'Normal', 'storefront' ),
|
|
|
|
'size' => 16,
|
|
|
|
'slug' => 'normal',
|
|
|
|
),
|
|
|
|
array(
|
|
|
|
'name' => __( 'Medium', 'storefront' ),
|
|
|
|
'size' => 23,
|
|
|
|
'slug' => 'medium',
|
|
|
|
),
|
|
|
|
array(
|
|
|
|
'name' => __( 'Large', 'storefront' ),
|
|
|
|
'size' => 26,
|
|
|
|
'slug' => 'large',
|
|
|
|
),
|
|
|
|
array(
|
|
|
|
'name' => __( 'Huge', 'storefront' ),
|
|
|
|
'size' => 37,
|
|
|
|
'slug' => 'huge',
|
|
|
|
),
|
|
|
|
)
|
|
|
|
);
|
2019-06-21 19:38:05 +01:00
|
|
|
|
2018-10-31 16:03:25 +00:00
|
|
|
/**
|
|
|
|
* Enqueue editor styles.
|
|
|
|
*/
|
2018-12-05 15:27:36 +00:00
|
|
|
add_editor_style( array( 'assets/css/base/gutenberg-editor.css', $this->google_fonts() ) );
|
2018-11-04 13:56:41 +00:00
|
|
|
|
2018-11-04 13:58:13 +00:00
|
|
|
/**
|
|
|
|
* Add support for responsive embedded content.
|
|
|
|
*/
|
|
|
|
add_theme_support( 'responsive-embeds' );
|
2022-06-28 04:03:17 -07:00
|
|
|
|
2024-05-15 11:26:27 -04:00
|
|
|
/**
|
|
|
|
* Add support for appearance tools.
|
|
|
|
*
|
|
|
|
* @link https://wordpress.org/documentation/wordpress-version/version-6-5/#add-appearance-tools-to-classic-themes
|
|
|
|
*/
|
|
|
|
add_theme_support( 'appearance-tools' );
|
|
|
|
|
2022-06-28 04:03:17 -07:00
|
|
|
add_theme_support(
|
|
|
|
'amp',
|
|
|
|
array(
|
|
|
|
'nav_menu_toggle' => array(
|
|
|
|
'nav_container_id' => 'site-navigation',
|
|
|
|
'nav_container_toggle_class' => 'toggled',
|
|
|
|
'menu_button_id' => 'site-navigation-menu-toggle',
|
|
|
|
'menu_button_toggle_class' => 'toggled',
|
|
|
|
),
|
|
|
|
)
|
|
|
|
);
|
2016-02-19 16:57:56 +00:00
|
|
|
}
|
2016-01-20 16:02:53 +00:00
|
|
|
|
|
|
|
/**
|
2016-02-19 16:57:56 +00:00
|
|
|
* Register widget area.
|
2016-01-20 16:02:53 +00:00
|
|
|
*
|
2018-01-04 19:35:25 +05:30
|
|
|
* @link https://codex.wordpress.org/Function_Reference/register_sidebar
|
2016-01-20 16:02:53 +00:00
|
|
|
*/
|
2016-08-01 11:17:10 +01:00
|
|
|
public function widgets_init() {
|
|
|
|
$sidebar_args['sidebar'] = array(
|
2018-11-21 11:52:42 +00:00
|
|
|
'name' => __( 'Sidebar', 'storefront' ),
|
|
|
|
'id' => 'sidebar-1',
|
|
|
|
'description' => '',
|
2016-08-01 11:17:10 +01:00
|
|
|
);
|
2016-10-14 21:30:29 +02:00
|
|
|
|
2016-10-12 23:25:51 +02:00
|
|
|
$sidebar_args['header'] = array(
|
|
|
|
'name' => __( 'Below Header', 'storefront' ),
|
|
|
|
'id' => 'header-1',
|
|
|
|
'description' => __( 'Widgets added to this region will appear beneath the header and above the main content.', 'storefront' ),
|
|
|
|
);
|
2016-08-01 11:17:10 +01:00
|
|
|
|
2017-01-19 14:41:42 +00:00
|
|
|
$rows = intval( apply_filters( 'storefront_footer_widget_rows', 1 ) );
|
|
|
|
$regions = intval( apply_filters( 'storefront_footer_widget_columns', 4 ) );
|
2016-08-01 11:17:10 +01:00
|
|
|
|
2016-10-14 16:05:25 +02:00
|
|
|
for ( $row = 1; $row <= $rows; $row++ ) {
|
|
|
|
for ( $region = 1; $region <= $regions; $region++ ) {
|
2016-10-15 02:31:51 +02:00
|
|
|
$footer_n = $region + $regions * ( $row - 1 ); // Defines footer sidebar ID.
|
2016-10-14 21:30:29 +02:00
|
|
|
$footer = sprintf( 'footer_%d', $footer_n );
|
2016-08-01 11:17:10 +01:00
|
|
|
|
2018-11-21 17:32:12 +00:00
|
|
|
if ( 1 === $rows ) {
|
2018-06-22 15:11:39 +01:00
|
|
|
/* translators: 1: column number */
|
2017-01-19 14:41:42 +00:00
|
|
|
$footer_region_name = sprintf( __( 'Footer Column %1$d', 'storefront' ), $region );
|
2018-06-22 15:11:39 +01:00
|
|
|
|
|
|
|
/* translators: 1: column number */
|
2017-01-19 14:41:42 +00:00
|
|
|
$footer_region_description = sprintf( __( 'Widgets added here will appear in column %1$d of the footer.', 'storefront' ), $region );
|
|
|
|
} else {
|
2018-06-22 15:11:39 +01:00
|
|
|
/* translators: 1: row number, 2: column number */
|
2017-01-19 14:41:42 +00:00
|
|
|
$footer_region_name = sprintf( __( 'Footer Row %1$d - Column %2$d', 'storefront' ), $row, $region );
|
2018-06-22 15:11:39 +01:00
|
|
|
|
|
|
|
/* translators: 1: column number, 2: row number */
|
2017-01-19 14:41:42 +00:00
|
|
|
$footer_region_description = sprintf( __( 'Widgets added here will appear in column %1$d of footer row %2$d.', 'storefront' ), $region, $row );
|
|
|
|
}
|
|
|
|
|
2016-10-12 23:25:51 +02:00
|
|
|
$sidebar_args[ $footer ] = array(
|
2017-01-19 14:41:42 +00:00
|
|
|
'name' => $footer_region_name,
|
2016-10-14 21:30:29 +02:00
|
|
|
'id' => sprintf( 'footer-%d', $footer_n ),
|
2017-01-19 14:41:42 +00:00
|
|
|
'description' => $footer_region_description,
|
2016-10-12 23:25:51 +02:00
|
|
|
);
|
|
|
|
}
|
2016-08-01 11:17:10 +01:00
|
|
|
}
|
2017-12-04 19:03:20 +00:00
|
|
|
|
2017-08-03 17:13:00 +06:00
|
|
|
$sidebar_args = apply_filters( 'storefront_sidebar_args', $sidebar_args );
|
2016-08-01 11:17:10 +01:00
|
|
|
|
|
|
|
foreach ( $sidebar_args as $sidebar => $args ) {
|
|
|
|
$widget_tags = array(
|
|
|
|
'before_widget' => '<div id="%1$s" class="widget %2$s">',
|
|
|
|
'after_widget' => '</div>',
|
|
|
|
'before_title' => '<span class="gamma widget-title">',
|
2016-10-14 21:30:29 +02:00
|
|
|
'after_title' => '</span>',
|
2016-08-01 11:17:10 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Dynamically generated filter hooks. Allow changing widget wrapper and title tags. See the list below.
|
|
|
|
*
|
|
|
|
* 'storefront_header_widget_tags'
|
|
|
|
* 'storefront_sidebar_widget_tags'
|
|
|
|
*
|
2016-10-14 21:30:29 +02:00
|
|
|
* 'storefront_footer_1_widget_tags'
|
|
|
|
* 'storefront_footer_2_widget_tags'
|
|
|
|
* 'storefront_footer_3_widget_tags'
|
|
|
|
* 'storefront_footer_4_widget_tags'
|
2016-08-01 11:17:10 +01:00
|
|
|
*/
|
|
|
|
$filter_hook = sprintf( 'storefront_%s_widget_tags', $sidebar );
|
|
|
|
$widget_tags = apply_filters( $filter_hook, $widget_tags );
|
|
|
|
|
|
|
|
if ( is_array( $widget_tags ) ) {
|
|
|
|
register_sidebar( $args + $widget_tags );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2016-01-20 16:02:53 +00:00
|
|
|
|
2016-02-19 16:57:56 +00:00
|
|
|
/**
|
|
|
|
* Enqueue scripts and styles.
|
|
|
|
*
|
|
|
|
* @since 1.0.0
|
|
|
|
*/
|
|
|
|
public function scripts() {
|
|
|
|
global $storefront_version;
|
2016-01-20 16:02:53 +00:00
|
|
|
|
2016-03-17 15:59:56 +00:00
|
|
|
/**
|
|
|
|
* Styles
|
|
|
|
*/
|
2016-02-19 16:57:56 +00:00
|
|
|
wp_enqueue_style( 'storefront-style', get_template_directory_uri() . '/style.css', '', $storefront_version );
|
|
|
|
wp_style_add_data( 'storefront-style', 'rtl', 'replace' );
|
2016-01-20 16:02:53 +00:00
|
|
|
|
2018-02-08 18:29:45 +00:00
|
|
|
wp_enqueue_style( 'storefront-icons', get_template_directory_uri() . '/assets/css/base/icons.css', '', $storefront_version );
|
2018-01-03 11:55:20 +00:00
|
|
|
wp_style_add_data( 'storefront-icons', 'rtl', 'replace' );
|
2017-01-19 18:42:23 +00:00
|
|
|
|
2016-03-17 15:59:56 +00:00
|
|
|
/**
|
|
|
|
* Fonts
|
|
|
|
*/
|
2020-09-17 11:28:22 +12:00
|
|
|
wp_enqueue_style( 'storefront-fonts', $this->google_fonts(), array(), $storefront_version );
|
2016-02-25 15:49:19 +00:00
|
|
|
|
2016-03-17 15:59:56 +00:00
|
|
|
/**
|
|
|
|
* Scripts
|
|
|
|
*/
|
2017-08-03 12:57:59 +01:00
|
|
|
$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
|
|
|
|
|
2023-08-07 11:18:55 +02:00
|
|
|
wp_enqueue_script( 'wc-cart-fragments' );
|
|
|
|
|
2018-01-05 14:38:52 -08:00
|
|
|
wp_enqueue_script( 'storefront-navigation', get_template_directory_uri() . '/assets/js/navigation' . $suffix . '.js', array(), $storefront_version, true );
|
2016-01-20 16:02:53 +00:00
|
|
|
|
2017-10-10 12:34:23 -07:00
|
|
|
if ( has_nav_menu( 'handheld' ) ) {
|
2018-03-07 14:54:52 +00:00
|
|
|
$storefront_l10n = array(
|
|
|
|
'expand' => __( 'Expand child menu', 'storefront' ),
|
|
|
|
'collapse' => __( 'Collapse child menu', 'storefront' ),
|
|
|
|
);
|
2017-10-10 12:34:23 -07:00
|
|
|
|
2018-03-07 14:54:52 +00:00
|
|
|
wp_localize_script( 'storefront-navigation', 'storefrontScreenReaderText', $storefront_l10n );
|
|
|
|
}
|
2017-10-10 12:34:23 -07:00
|
|
|
|
2017-01-23 17:54:58 +00:00
|
|
|
if ( is_page_template( 'template-homepage.php' ) && has_post_thumbnail() ) {
|
2018-01-05 14:38:52 -08:00
|
|
|
wp_enqueue_script( 'storefront-homepage', get_template_directory_uri() . '/assets/js/homepage' . $suffix . '.js', array(), $storefront_version, true );
|
2017-01-23 17:54:58 +00:00
|
|
|
}
|
|
|
|
|
2016-02-19 16:57:56 +00:00
|
|
|
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
|
|
|
|
wp_enqueue_script( 'comment-reply' );
|
|
|
|
}
|
2016-01-20 16:02:53 +00:00
|
|
|
}
|
|
|
|
|
2018-12-05 15:27:36 +00:00
|
|
|
/**
|
|
|
|
* Register Google fonts.
|
|
|
|
*
|
|
|
|
* @since 2.4.0
|
|
|
|
* @return string Google fonts URL for the theme.
|
|
|
|
*/
|
|
|
|
public function google_fonts() {
|
|
|
|
$google_fonts = apply_filters(
|
2020-09-17 11:28:22 +12:00
|
|
|
'storefront_google_font_families',
|
|
|
|
array(
|
2018-12-05 15:27:36 +00:00
|
|
|
'source-sans-pro' => 'Source+Sans+Pro:400,300,300italic,400italic,600,700,900',
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
$query_args = array(
|
|
|
|
'family' => implode( '|', $google_fonts ),
|
|
|
|
'subset' => rawurlencode( 'latin,latin-ext' ),
|
|
|
|
);
|
|
|
|
|
|
|
|
$fonts_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
|
|
|
|
|
|
|
|
return $fonts_url;
|
|
|
|
}
|
|
|
|
|
2019-05-02 11:58:04 +01:00
|
|
|
/**
|
|
|
|
* Enqueue block assets.
|
|
|
|
*
|
|
|
|
* @since 2.5.0
|
|
|
|
*/
|
|
|
|
public function block_assets() {
|
|
|
|
global $storefront_version;
|
|
|
|
|
|
|
|
// Styles.
|
|
|
|
wp_enqueue_style( 'storefront-gutenberg-blocks', get_template_directory_uri() . '/assets/css/base/gutenberg-blocks.css', '', $storefront_version );
|
|
|
|
wp_style_add_data( 'storefront-gutenberg-blocks', 'rtl', 'replace' );
|
|
|
|
}
|
|
|
|
|
2016-02-19 16:57:56 +00:00
|
|
|
/**
|
|
|
|
* Enqueue child theme stylesheet.
|
|
|
|
* A separate function is required as the child theme css needs to be enqueued _after_ the parent theme
|
|
|
|
* primary css and the separate WooCommerce css.
|
|
|
|
*
|
|
|
|
* @since 1.5.3
|
|
|
|
*/
|
|
|
|
public function child_scripts() {
|
|
|
|
if ( is_child_theme() ) {
|
2018-01-02 17:30:06 +00:00
|
|
|
$child_theme = wp_get_theme( get_stylesheet() );
|
|
|
|
wp_enqueue_style( 'storefront-child-style', get_stylesheet_uri(), array(), $child_theme->get( 'Version' ) );
|
2016-02-19 16:57:56 +00:00
|
|
|
}
|
2016-01-20 16:02:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2016-02-19 16:57:56 +00:00
|
|
|
* Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link.
|
|
|
|
*
|
|
|
|
* @param array $args Configuration arguments.
|
|
|
|
* @return array
|
2016-01-20 16:02:53 +00:00
|
|
|
*/
|
2016-02-19 16:57:56 +00:00
|
|
|
public function page_menu_args( $args ) {
|
|
|
|
$args['show_home'] = true;
|
|
|
|
return $args;
|
2016-01-20 16:02:53 +00:00
|
|
|
}
|
|
|
|
|
2016-02-19 16:57:56 +00:00
|
|
|
/**
|
|
|
|
* Adds custom classes to the array of body classes.
|
|
|
|
*
|
|
|
|
* @param array $classes Classes for the body element.
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function body_classes( $classes ) {
|
2018-06-04 22:26:17 +01:00
|
|
|
// Adds a class to blogs with more than 1 published author.
|
2016-02-19 16:57:56 +00:00
|
|
|
if ( is_multi_author() ) {
|
|
|
|
$classes[] = 'group-blog';
|
|
|
|
}
|
|
|
|
|
2018-06-04 22:26:17 +01:00
|
|
|
/**
|
|
|
|
* Adds a class when WooCommerce is not active.
|
|
|
|
*
|
|
|
|
* @todo Refactor child themes to remove dependency on this class.
|
|
|
|
*/
|
|
|
|
$classes[] = 'no-wc-breadcrumb';
|
2016-02-19 16:57:56 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* What is this?!
|
|
|
|
* Take the blue pill, close this file and forget you saw the following code.
|
|
|
|
* Or take the red pill, filter storefront_make_me_cute and see how deep the rabbit hole goes...
|
|
|
|
*/
|
|
|
|
$cute = apply_filters( 'storefront_make_me_cute', false );
|
|
|
|
|
|
|
|
if ( true === $cute ) {
|
|
|
|
$classes[] = 'storefront-cute';
|
|
|
|
}
|
|
|
|
|
|
|
|
// If our main sidebar doesn't contain widgets, adjust the layout to be full-width.
|
|
|
|
if ( ! is_active_sidebar( 'sidebar-1' ) ) {
|
|
|
|
$classes[] = 'storefront-full-width-content';
|
|
|
|
}
|
|
|
|
|
2018-06-04 22:26:17 +01:00
|
|
|
// Add class when using homepage template + featured image.
|
2017-01-23 17:54:58 +00:00
|
|
|
if ( is_page_template( 'template-homepage.php' ) && has_post_thumbnail() ) {
|
|
|
|
$classes[] = 'has-post-thumbnail';
|
|
|
|
}
|
|
|
|
|
2018-06-04 22:26:17 +01:00
|
|
|
// Add class when Secondary Navigation is in use.
|
2018-04-12 18:47:45 +01:00
|
|
|
if ( has_nav_menu( 'secondary' ) ) {
|
|
|
|
$classes[] = 'storefront-secondary-navigation';
|
|
|
|
}
|
|
|
|
|
2018-11-27 20:06:01 +00:00
|
|
|
// Add class if align-wide is supported.
|
|
|
|
if ( current_theme_supports( 'align-wide' ) ) {
|
|
|
|
$classes[] = 'storefront-align-wide';
|
|
|
|
}
|
|
|
|
|
2016-02-19 16:57:56 +00:00
|
|
|
return $classes;
|
2016-01-20 16:02:53 +00:00
|
|
|
}
|
2016-03-18 18:48:40 +00:00
|
|
|
|
2016-08-01 11:17:10 +01:00
|
|
|
/**
|
|
|
|
* Custom navigation markup template hooked into `navigation_markup_template` filter hook.
|
|
|
|
*/
|
|
|
|
public function navigation_markup_template() {
|
2017-06-23 13:07:47 +03:00
|
|
|
$template = '<nav id="post-navigation" class="navigation %1$s" role="navigation" aria-label="' . esc_html__( 'Post Navigation', 'storefront' ) . '">';
|
2018-04-13 19:33:03 -04:00
|
|
|
$template .= '<h2 class="screen-reader-text">%2$s</h2>';
|
2016-08-01 11:17:10 +01:00
|
|
|
$template .= '<div class="nav-links">%3$s</div>';
|
|
|
|
$template .= '</nav>';
|
|
|
|
|
|
|
|
return apply_filters( 'storefront_navigation_markup_template', $template );
|
|
|
|
}
|
2016-07-27 19:40:14 +02:00
|
|
|
|
2016-03-18 18:48:40 +00:00
|
|
|
/**
|
|
|
|
* Add styles for embeds
|
|
|
|
*/
|
|
|
|
public function print_embed_styles() {
|
2020-09-17 11:28:22 +12:00
|
|
|
global $storefront_version;
|
|
|
|
|
|
|
|
wp_enqueue_style( 'source-sans-pro', '//fonts.googleapis.com/css?family=Source+Sans+Pro:400,300,300italic,400italic,700,900', array(), $storefront_version );
|
2016-04-15 10:10:20 +01:00
|
|
|
$accent_color = get_theme_mod( 'storefront_accent_color' );
|
|
|
|
$background_color = storefront_get_content_background_color();
|
2016-03-18 18:48:40 +00:00
|
|
|
?>
|
|
|
|
<style type="text/css">
|
|
|
|
.wp-embed {
|
2016-08-22 11:30:38 +01:00
|
|
|
padding: 2.618em !important;
|
2016-03-18 18:48:40 +00:00
|
|
|
border: 0 !important;
|
2016-04-15 10:10:20 +01:00
|
|
|
border-radius: 3px !important;
|
|
|
|
font-family: "Source Sans Pro", "Open Sans", sans-serif !important;
|
2017-04-19 11:16:10 +01:00
|
|
|
background-color: <?php echo esc_html( storefront_adjust_color_brightness( $background_color, -7 ) ); ?> !important;
|
2016-03-18 18:48:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.wp-embed .wp-embed-featured-image {
|
2016-08-22 11:30:38 +01:00
|
|
|
margin-bottom: 2.618em;
|
2016-03-18 18:48:40 +00:00
|
|
|
}
|
|
|
|
|
2016-04-15 10:10:20 +01:00
|
|
|
.wp-embed .wp-embed-featured-image img,
|
|
|
|
.wp-embed .wp-embed-featured-image.square {
|
|
|
|
min-width: 100%;
|
2016-08-22 11:30:38 +01:00
|
|
|
margin-bottom: .618em;
|
2016-03-18 18:48:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
a.wc-embed-button {
|
2016-08-22 11:30:38 +01:00
|
|
|
padding: .857em 1.387em !important;
|
2016-03-18 18:48:40 +00:00
|
|
|
font-weight: 600;
|
2016-03-21 10:14:37 +00:00
|
|
|
background-color: <?php echo esc_attr( $accent_color ); ?>;
|
2016-03-18 18:48:40 +00:00
|
|
|
color: #fff !important;
|
|
|
|
border: 0 !important;
|
|
|
|
line-height: 1;
|
|
|
|
border-radius: 0 !important;
|
|
|
|
box-shadow:
|
|
|
|
inset 0 -1px 0 rgba(#000,.3);
|
|
|
|
}
|
2016-03-21 10:14:37 +00:00
|
|
|
|
|
|
|
a.wc-embed-button + a.wc-embed-button {
|
|
|
|
background-color: #60646c;
|
|
|
|
}
|
2016-03-18 18:48:40 +00:00
|
|
|
</style>
|
|
|
|
<?php
|
2016-06-01 12:26:01 +01:00
|
|
|
}
|
|
|
|
}
|
2016-01-20 16:02:53 +00:00
|
|
|
endif;
|
|
|
|
|
2016-02-19 16:57:56 +00:00
|
|
|
return new Storefront();
|