%PDF- %PDF-
Direktori : /www/old2/_terainkognita.cz/www.terainkognita.cz/wp-content/themes/bravada/includes/ |
Current File : /www/old2/_terainkognita.cz/www.terainkognita.cz/wp-content/themes/bravada/includes/setup.php |
<?php /* * Theme setup functions. Theme initialization, add_theme_support(), widgets, navigation * * @package Bravada */ /** * Set the content width based on the theme's design and stylesheet. */ add_action( 'after_setup_theme', 'bravada_content_width' ); // mostly for dashboard add_action( 'template_redirect', 'bravada_content_width' ); /** Tell WordPress to run bravada_setup() when the 'after_setup_theme' hook is run. */ add_action( 'after_setup_theme', 'bravada_setup' ); /** * Sets up theme defaults and registers support for various WordPress features. */ function bravada_setup() { add_filter( 'bravada_theme_options_array', 'bravada_lpbox_width' ); $options = cryout_get_option(); // This theme styles the visual editor with editor-style.css to match the theme style. if ($options['theme_editorstyles']) add_editor_style( 'resources/styles/editor-style.css' ); // Support title tag since WP 4.1 add_theme_support( 'title-tag' ); // Add default posts and comments RSS feed links to head add_theme_support( 'automatic-feed-links' ); // Add HTML5 support add_theme_support( 'html5', array( 'script', 'style', 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) ); // Add post formats add_theme_support( 'post-formats', array( 'aside', 'chat', 'gallery', 'image', 'link', 'quote', 'status', 'audio', 'video' ) ); // Make theme available for translation load_theme_textdomain( 'bravada', get_template_directory() . '/cryout/languages' ); load_theme_textdomain( 'bravada', get_template_directory() . '/languages' ); load_textdomain( 'cryout', '' ); // This theme allows users to set a custom backgrounds add_theme_support( 'custom-background' ); // This theme supports WordPress 4.5 logos add_theme_support( 'custom-logo', array( 'height' => (int) $options['theme_headerheight'], 'width' => 240, 'flex-height' => true, 'flex-width' => true ) ); add_filter( 'get_custom_logo', 'cryout_filter_wp_logo_img' ); // This theme uses wp_nav_menu() in 3 locations. register_nav_menus( array( 'primary' => __( 'Primary/Side Navigation', 'bravada' ), 'top' => __( 'Header Navigation', 'bravada' ), 'sidebar' => __( 'Left Sidebar', 'bravada' ), 'footer' => __( 'Footer Navigation', 'bravada' ), 'socials' => __( 'Social Icons', 'bravada' ), ) ); $fheight = $options['theme_fheight']; $falign = (bool)$options['theme_falign']; if (false===$falign) { $fheight = 0; } else { $falign = explode( ' ', $options['theme_falign'] ); if (!is_array($falign) ) $falign = array( 'center', 'center' ); //failsafe } // This theme uses post thumbnails add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( // default Post Thumbnail dimensions apply_filters( 'bravada_thumbnail_image_width', bravada_featured_width() ), apply_filters( 'bravada_thumbnail_image_height', $options['theme_fheight'] ), false ); // Custom image size for use with post thumbnails add_image_size( 'bravada-featured', apply_filters( 'bravada_featured_image_width', bravada_featured_width() ), apply_filters( 'bravada_featured_image_height', $fheight ), $falign ); // Additional responsive image sizes add_image_size( 'bravada-featured-lp', apply_filters( 'bravada_featured_image_lp_width', ceil( $options['theme_sitewidth'] / apply_filters( 'bravada_lppostslayout_filter', $options['theme_magazinelayout'] ) ) ), apply_filters( 'bravada_featured_image_lp_height', $options['theme_fheight'] ), $falign ); add_image_size( 'bravada-featured-half', apply_filters( 'bravada_featured_image_half_width', 800 ), apply_filters( 'bravada_featured_image_falf_height', $options['theme_fheight'] ), $falign ); add_image_size( 'bravada-featured-third', apply_filters( 'bravada_featured_image_third_width', 512 ), apply_filters( 'bravada_featured_image_third_height', $options['theme_fheight'] ), $falign ); // Boxes image sizes add_image_size( 'bravada-lpbox-1', $options['theme_lpboxwidth1'], $options['theme_lpboxheight1'], true ); add_image_size( 'bravada-lpbox-2', $options['theme_lpboxwidth2'], $options['theme_lpboxheight2'], true ); // Add support for flexible headers add_theme_support( 'custom-header', array( 'flex-height' => true, 'height' => (int) $options['theme_headerheight'], 'flex-width' => true, 'width' => 1920, 'default-image' => get_template_directory_uri() . '/resources/images/headers/mirrorlake.jpg', 'video' => true, )); // Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI. register_default_headers( array( 'mirrorlake' => array( 'url' => '%s/resources/images/headers/mirrorlake.jpg', 'thumbnail_url' => '%s/resources/images/headers/mirrorlake.jpg', 'description' => __( 'Mirror lake', 'bravada' ) ) ) ); // Gutenberg // add_theme_support( 'wp-block-styles' ); // apply default block styles add_theme_support( 'responsive-embeds' ); add_theme_support( 'align-wide' ); add_theme_support( 'editor-color-palette', array( array( 'name' => __( 'Accent #1', 'bravada' ), 'slug' => 'accent-1', 'color' => $options['theme_accent1'], ), array( 'name' => __( 'Accent #2', 'bravada' ), 'slug' => 'accent-2', 'color' => $options['theme_accent2'], ), array( 'name' => __( 'Content Headings', 'bravada' ), 'slug' => 'headings', 'color' => $options['theme_headingstext'], ), array( 'name' => __( 'Site Text', 'bravada' ), 'slug' => 'sitetext', 'color' => $options['theme_sitetext'], ), array( 'name' => __( 'Content Background', 'bravada' ), 'slug' => 'sitebg', 'color' => $options['theme_contentbackground'], ), ) ); add_theme_support( 'editor-font-sizes', array( array( 'name' => __( 'small', 'cryout' ), 'shortName' => __( 'S', 'cryout' ), 'size' => intval( intval( $options['theme_fgeneralsize'] ) / 1.6 ), 'slug' => 'small' ), array( 'name' => __( 'normal', 'cryout' ), 'shortName' => __( 'M', 'cryout' ), 'size' => intval( intval( $options['theme_fgeneralsize'] ) * 1.0 ), 'slug' => 'normal' ), array( 'name' => __( 'large', 'cryout' ), 'shortName' => __( 'L', 'cryout' ), 'size' => intval( intval( $options['theme_fgeneralsize'] ) * 1.6 ), 'slug' => 'large' ), array( 'name' => __( 'larger', 'cryout' ), 'shortName' => __( 'XL', 'cryout' ), 'size' => intval( intval( $options['theme_fgeneralsize'] ) * 2.56 ), 'slug' => 'larger' ) ) ); // WooCommerce compatibility add_theme_support( 'woocommerce' ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); } // bravada_setup() function bravada_gutenberg_editor_styles() { $editorstyles = cryout_get_option('theme_editorstyles'); if ( ! $editorstyles ) return; wp_enqueue_style( 'bravada-gutenberg-editor-styles', get_theme_file_uri( '/resources/styles/gutenberg-editor.css' ), false, _CRYOUT_THEME_VERSION, 'all' ); wp_add_inline_style( 'bravada-gutenberg-editor-styles', preg_replace( "/[\n\r\t\s]+/", " ", bravada_editor_styles() ) ); } add_action( 'enqueue_block_editor_assets', 'bravada_gutenberg_editor_styles' ); /* * Have two textdomains work with translation systems. * https://gist.github.com/justintadlock/7a605c29ae26c80878d0 */ function bravada_override_load_textdomain( $override, $domain ) { // Check if the domain is our framework domain. if ( 'cryout' === $domain ) { global $l10n; // If the theme's textdomain is loaded, assign the theme's translations // to the framework's textdomain. if ( isset( $l10n[ 'bravada' ] ) ) $l10n[ $domain ] = $l10n[ 'bravada' ]; // Always override. We only want the theme to handle translations. $override = true; } return $override; } add_filter( 'override_load_textdomain', 'bravada_override_load_textdomain', 10, 2 ); /** * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link. */ function bravada_page_menu_args( $args ) { $args['show_home'] = true; return $args; } add_filter( 'wp_page_menu_args', 'bravada_page_menu_args' ); /** * Custom menu fallback, using wp_page_menu() * Created to make the fallback menu have the same HTML structure as the default */ function bravada_default_main_menu() { wp_page_menu($args = array( 'menu_class' => 'side-menu side-section', 'link_before' => '<span>', 'link_after' => '</span>', 'before' => '<ul id="mobile-nav">', 'after' => '</ul>' )); } /** * Custom menu fallback, using wp_page_menu() * Created to make the fallback menu have the same HTML structure as the default */ function bravada_default_header_menu() { wp_page_menu($args = array( 'menu_class' => '', 'link_before' => '<span>', 'link_after' => '</span>', 'before' => '<ul id="top-nav" class="top-nav">', 'after' => '</ul>' )); } /** Main/Side/Mobile menu */ function bravada_main_menu() { wp_nav_menu( array( 'container' => '', 'menu_id' => 'mobile-nav', 'menu_class' => '', 'theme_location'=> 'primary', 'link_before' => '<span>', 'link_after' => '</span>', 'items_wrap' => '<div class="side-menu side-section"><ul id="%s" class="%s">%s</ul></div>', 'fallback_cb' => 'bravada_default_main_menu' ) ); } // bravada_main_menu() add_action ( 'cryout_mobilemenu_hook', 'bravada_main_menu' ); /** Header menu */ function bravada_header_menu() { ?> <?php wp_nav_menu( array( 'container' => '', 'menu_id' => 'top-nav', 'menu_class' => '', 'theme_location'=> 'top', 'link_before' => '<span>', 'link_after' => '</span>', 'items_wrap' => '<div><ul id="%s" class="%s">%s</ul></div>', 'fallback_cb' => 'bravada_default_header_menu' ) ); } // bravada_header_menu() add_action ( 'cryout_access_hook', 'bravada_header_menu' ); /** Left sidebar menu */ function bravada_sidebar_menu() { if ( has_nav_menu( 'sidebar' ) ) wp_nav_menu( array( 'container' => 'nav', 'container_class' => 'sidebarmenu widget-container', 'theme_location' => 'sidebar', 'depth' => 1 ) ); } // bravada_sidebar_menu() add_action ( 'cryout_before_primary_widgets_hook', 'bravada_sidebar_menu' , 10 ); /** Footer menu */ function bravada_footer_menu() { if ( has_nav_menu( 'footer' ) ) wp_nav_menu( array( 'container' => 'nav', 'container_class' => 'footermenu', 'theme_location' => 'footer', 'after' => '<span class="sep">/</span>', 'depth' => 1 ) ); } // bravada_footer_menu() add_action ( 'cryout_master_footerbottom_hook', 'bravada_footer_menu' , 10 ); /** SOCIALS MENU */ function bravada_socials_menu( $location ) { if ( has_nav_menu( 'socials' ) ) echo strip_tags( wp_nav_menu( array( 'container' => 'nav', 'container_class' => 'socials', 'container_id' => $location, 'theme_location' => 'socials', 'link_before' => '<span>', 'link_after' => '</span>', 'depth' => 0, 'items_wrap' => '%3$s', 'walker' => new Cryout_Social_Menu_Walker(), 'echo' => false, ) ), '<a><div><span><nav>' ); } //bravada_socials_menu() function bravada_socials_menu_header() { ?> <div class="side-socials side-section"> <div class="widget-side-section-inner"> <section class="side-section-element widget_cryout_socials"> <div class="widget-socials"> <?php bravada_socials_menu( 'sheader' ) ?> </div> </section> </div> </div><?php } // bravada_socials_menu_header() function bravada_socials_menu_footer() { bravada_socials_menu( 'sfooter' ); } function bravada_socials_menu_left() { bravada_socials_menu( 'sleft' ); } function bravada_socials_menu_right() { bravada_socials_menu( 'sright' ); } /* Socials hooks moved to master hook in core.php */ /** * Register widgetized areas defined by theme options. */ function cryout_widgets_init() { $areas = cryout_get_theme_structure( 'widget-areas' ); if ( ! empty( $areas ) ): foreach ( $areas as $aid => $area ): register_sidebar( array( 'name' => $area['name'], 'id' => $aid, 'description' => ( isset( $area['description'] ) ? $area['description'] : '' ), 'before_widget' => $area['before_widget'], 'after_widget' => $area['after_widget'], 'before_title' => $area['before_title'], 'after_title' => $area['after_title'], ) ); endforeach; endif; } // cryout_widgets_init() add_action( 'widgets_init', 'cryout_widgets_init' ); /** * Creates different class names for footer widgets depending on their number. * This way they can fit the footer area. */ function bravada_footer_colophon_class() { $opts = cryout_get_option( array( 'theme_footercols', 'theme_footeralign' ) ); $class = ''; switch ( $opts['theme_footercols'] ) { case '0': $class = 'all'; break; case '1': $class = 'one'; break; case '2': $class = 'two'; break; case '3': $class = 'three'; break; case '4': $class = 'four'; break; } if ( !empty($class) ) echo 'class="footer-' . esc_attr( $class ) . ' ' . ( $opts['theme_footeralign'] ? 'footer-center' : '' ) . '"'; } // bravada_footer_colophon_class() /** * Set up widget areas */ function bravada_widget_header() { $headerimage_on_lp = cryout_get_option( 'theme_lpslider' ); if ( is_active_sidebar( 'widget-area-header' ) && ( !cryout_on_landingpage() || ( cryout_on_landingpage() && ($headerimage_on_lp == 3) ) ) ) { ?> <aside id="header-widget-area" <?php cryout_schema_microdata( 'sidebar' ); ?>> <?php dynamic_sidebar( 'widget-area-header' ); ?> </aside><?php } } // bravada_widget_header() function bravada_widget_before() { if ( is_active_sidebar( 'content-widget-area-before' ) ) { ?> <aside class="content-widget content-widget-before" <?php cryout_schema_microdata( 'sidebar' ); ?>> <?php dynamic_sidebar( 'content-widget-area-before' ); ?> </aside><!--content-widget--><?php } } //bravada_widget_before() function bravada_widget_after() { if ( is_active_sidebar( 'content-widget-area-after' ) ) { ?> <aside class="content-widget content-widget-after" <?php cryout_schema_microdata( 'sidebar' ); ?>> <?php dynamic_sidebar( 'content-widget-area-after' ); ?> </aside><!--content-widget--><?php } } //bravada_widget_after() function bravada_widget_side_section() { do_action('cryout_header_socials_hook'); if ( is_active_sidebar( 'widget-area-side-section' ) ) { ?> <div class="side-section-widget side-section"> <div class="widget-side-section-inner"> <?php dynamic_sidebar( 'widget-area-side-section' ); ?> </div><!--content-widget--> </div><?php }; } //bravada_widget_side_section() add_action( 'cryout_header_widget_hook', 'bravada_widget_header' ); add_action( 'cryout_before_content_hook', 'bravada_widget_before' ); add_action( 'cryout_after_content_hook', 'bravada_widget_after' ); add_action( 'cryout_side_section_hook', 'bravada_widget_side_section' ); /* FIN */