Edit File: class-orun.php
<?php /** * orun Class * * @since 2.0.0 * @package orun */ if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! class_exists( 'orun' ) ) : /** * The main orun class */ class orun { /** * Setup class. * * @since 1.0 */ public function __construct() { add_action( 'after_setup_theme', array( $this, 'setup' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ), 10 ); add_action( 'wp_enqueue_scripts', array( $this, 'child_scripts' ), 30 ); // After WooCommerce. add_action( 'enqueue_block_assets', array( $this, 'block_assets' ) ); add_filter( 'body_class', array( $this, 'body_classes' ) ); add_filter( 'wp_page_menu_args', array( $this, 'page_menu_args' ) ); add_filter( 'navigation_markup_template', array( $this, 'navigation_markup_template' ) ); add_action( 'enqueue_embed_scripts', array( $this, 'print_embed_styles' ) ); } /** * Sets up theme defaults and registers support for various WordPress features. * * 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. */ 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/orun-it_IT.mo. load_theme_textdomain( 'orun', trailingslashit( WP_LANG_DIR ) . 'themes' ); // Loads wp-content/themes/child-theme-name/languages/it_IT.mo. load_theme_textdomain( 'orun', get_stylesheet_directory() . '/languages' ); // Loads wp-content/themes/orun/languages/it_IT.mo. load_theme_textdomain( 'orun', 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. * * @link https://developer.wordpress.org/reference/functions/add_theme_support/#Post_Thumbnails */ add_theme_support( 'post-thumbnails' ); /** * Enable support for site logo. */ add_theme_support( 'custom-logo', apply_filters( 'orun_custom_logo_args', array( 'height' => 110, 'width' => 470, 'flex-width' => true, 'flex-height' => true, ) ) ); /** * Register menu locations. */ /* * Switch default core markup for search form, comment form, comments, galleries, captions and widgets * to output valid HTML5. */ add_theme_support( 'html5', apply_filters( 'orun_html5_args', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'widgets', 'style', 'script', ) ) ); /** * Setup the WordPress core custom background feature. */ add_theme_support( 'custom-background', apply_filters( 'orun_custom_background_args', array( 'default-color' => apply_filters( 'orun_default_background_color', 'ffffff' ), 'default-image' => '', ) ) ); /** * Setup the WordPress core custom header feature. */ add_theme_support( 'custom-header', apply_filters( 'orun_custom_header_args', array( 'default-image' => '', 'header-text' => false, 'width' => 1950, 'height' => 500, 'flex-width' => true, 'flex-height' => true, ) ) ); /** * Add support for the Site Logo plugin and the site logo functionality in orunPack * https://github.com/automattic/site-logo * http://orunpack.me/ */ add_theme_support( 'site-logo', apply_filters( 'orun_site_logo_args', array( 'size' => 'full', ) ) ); /** * Declare support for title theme feature. */ add_theme_support( 'title-tag' ); /** * Declare support for selective refreshing of widgets. */ add_theme_support( 'customize-selective-refresh-widgets' ); /** * 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' ); /** * Add support for editor font sizes. */ add_theme_support( 'editor-font-sizes', array( array( 'name' => __( 'Small', 'orun' ), 'size' => 14, 'slug' => 'small', ), array( 'name' => __( 'Normal', 'orun' ), 'size' => 16, 'slug' => 'normal', ), array( 'name' => __( 'Medium', 'orun' ), 'size' => 23, 'slug' => 'medium', ), array( 'name' => __( 'Large', 'orun' ), 'size' => 26, 'slug' => 'large', ), array( 'name' => __( 'Huge', 'orun' ), 'size' => 37, 'slug' => 'huge', ), ) ); /** * Enqueue editor styles. */ add_editor_style( array( 'assets/css/base/gutenberg-editor.css', $this->google_fonts() ) ); /** * Add support for responsive embedded content. */ add_theme_support( 'responsive-embeds' ); 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', ), ) ); } /** * Register widget area. * * @link https://codex.wordpress.org/Function_Reference/register_sidebar */ /** * Enqueue scripts and styles. * * @since 1.0.0 */ public function scripts() { global $orun_version; /** * Styles */ wp_enqueue_style( 'orun-style', get_template_directory_uri() . '/style.css', '', $orun_version ); wp_style_add_data( 'orun-style', 'rtl', 'replace' ); wp_enqueue_style( 'orun-icons', get_template_directory_uri() . '/assets/css/base/icons.css', '', $orun_version ); wp_style_add_data( 'orun-icons', 'rtl', 'replace' ); /** * Fonts */ wp_enqueue_style( 'orun-fonts', $this->google_fonts(), array(), $orun_version ); /** * Scripts */ $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; wp_enqueue_script( 'wc-cart-fragments' ); wp_enqueue_script( 'orun-navigation', get_template_directory_uri() . '/assets/js/navigation' . $suffix . '.js', array(), $orun_version, true ); if ( has_nav_menu( 'handheld' ) ) { $orun_l10n = array( 'expand' => __( 'Expand child menu', 'orun' ), 'collapse' => __( 'Collapse child menu', 'orun' ), ); wp_localize_script( 'orun-navigation', 'orunScreenReaderText', $orun_l10n ); } if ( is_page_template( 'template-homepage.php' ) && has_post_thumbnail() ) { wp_enqueue_script( 'orun-homepage', get_template_directory_uri() . '/assets/js/homepage' . $suffix . '.js', array(), $orun_version, true ); } if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } } /** * Register Google fonts. * * @since 2.4.0 * @return string Google fonts URL for the theme. */ public function google_fonts() { $google_fonts = apply_filters( 'orun_google_font_families', array( '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; } /** * Enqueue block assets. * * @since 2.5.0 */ public function block_assets() { global $orun_version; // Styles. wp_enqueue_style( 'orun-gutenberg-blocks', get_template_directory_uri() . '/assets/css/base/gutenberg-blocks.css', '', $orun_version ); wp_style_add_data( 'orun-gutenberg-blocks', 'rtl', 'replace' ); } /** * 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() ) { $child_theme = wp_get_theme( get_stylesheet() ); wp_enqueue_style( 'orun-child-style', get_stylesheet_uri(), array(), $child_theme->get( 'Version' ) ); } } /** * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link. * * @param array $args Configuration arguments. * @return array */ public function page_menu_args( $args ) { $args['show_home'] = true; return $args; } /** * Adds custom classes to the array of body classes. * * @param array $classes Classes for the body element. * @return array */ public function body_classes( $classes ) { // Adds a class to blogs with more than 1 published author. if ( is_multi_author() ) { $classes[] = 'group-blog'; } /** * Adds a class when WooCommerce is not active. * * @todo Refactor child themes to remove dependency on this class. */ $classes[] = 'no-wc-breadcrumb'; /** * What is this?! * Take the blue pill, close this file and forget you saw the following code. * Or take the red pill, filter orun_make_me_cute and see how deep the rabbit hole goes... */ $cute = apply_filters( 'orun_make_me_cute', false ); if ( true === $cute ) { $classes[] = 'orun-cute'; } // If our main sidebar doesn't contain widgets, adjust the layout to be full-width. if ( ! is_active_sidebar( 'sidebar-1' ) ) { $classes[] = 'orun-full-width-content'; } // Add class when using homepage template + featured image. if ( is_page_template( 'template-homepage.php' ) && has_post_thumbnail() ) { $classes[] = 'has-post-thumbnail'; } // Add class when Secondary Navigation is in use. if ( has_nav_menu( 'secondary' ) ) { $classes[] = 'orun-secondary-navigation'; } // Add class if align-wide is supported. if ( current_theme_supports( 'align-wide' ) ) { $classes[] = 'orun-align-wide'; } return $classes; } /** * Custom navigation markup template hooked into `navigation_markup_template` filter hook. */ public function navigation_markup_template() { $template = '<nav id="post-navigation" class="navigation %1$s" role="navigation" aria-label="' . esc_html__( 'Post Navigation', 'orun' ) . '">'; $template .= '<h2 class="screen-reader-text">%2$s</h2>'; $template .= '<div class="nav-links">%3$s</div>'; $template .= '</nav>'; return apply_filters( 'orun_navigation_markup_template', $template ); } /** * Add styles for embeds */ public function print_embed_styles() { global $orun_version; wp_enqueue_style( 'source-sans-pro', '//fonts.googleapis.com/css?family=Source+Sans+Pro:400,300,300italic,400italic,700,900', array(), $orun_version ); $accent_color = get_theme_mod( 'orun_accent_color' ); $background_color = orun_get_content_background_color(); ?> <style type="text/css"> .wp-embed { padding: 2.618em !important; border: 0 !important; border-radius: 3px !important; font-family: "Source Sans Pro", "Open Sans", sans-serif !important; background-color: <?php echo esc_html( orun_adjust_color_brightness( $background_color, -7 ) ); ?> !important; } .wp-embed .wp-embed-featured-image { margin-bottom: 2.618em; } .wp-embed .wp-embed-featured-image img, .wp-embed .wp-embed-featured-image.square { min-width: 100%; margin-bottom: .618em; } a.wc-embed-button { padding: .857em 1.387em !important; font-weight: 600; background-color: <?php echo esc_attr( $accent_color ); ?>; color: #fff !important; border: 0 !important; line-height: 1; border-radius: 0 !important; box-shadow: inset 0 -1px 0 rgba(#000,.3); } a.wc-embed-button + a.wc-embed-button { background-color: #60646c; } </style> <?php } } endif; return new orun();