• File: functions.php
  • Full Path: /home/chassiw/www/wp-content/themes/buildbench/functions.php
  • File size: 5.37 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

/**
 * theme's main functions and globally usable variables, contants etc
 * added: v1.0 
 * textdomain: buildbench, class: BUILDBENCH, var: $buildbench_, constants: BUILDBENCH_, function: buildbench_
 */

// shorthand contants
// ------------------------------------------------------------------------
define('BUILDBENCH_THEME', 'BUILDBENCH  Construction WordPress Theme');
define('BUILDBENCH_VERSION', time());
define('BUILDBENCH_MINWP_VERSION', '4.3');


// shorthand contants for theme assets url
// ------------------------------------------------------------------------
define('BUILDBENCH_THEME_URI', get_template_directory_uri());
define('BUILDBENCH_IMG', BUILDBENCH_THEME_URI . '/assets/images');
define('BUILDBENCH_CSS', BUILDBENCH_THEME_URI . '/assets/css');
define('BUILDBENCH_JS', BUILDBENCH_THEME_URI . '/assets/js');



// shorthand contants for theme assets directory path
// ----------------------------------------------------------------------------------------
define('BUILDBENCH_THEME_DIR', get_template_directory());
define('BUILDBENCH_IMG_DIR', BUILDBENCH_THEME_DIR . '/assets/images');
define('BUILDBENCH_CSS_DIR', BUILDBENCH_THEME_DIR . '/assets/css');
define('BUILDBENCH_JS_DIR', BUILDBENCH_THEME_DIR . '/assets/js');

define('BUILDBENCH_CORE', BUILDBENCH_THEME_DIR . '/core');
define('BUILDBENCH_COMPONENTS', BUILDBENCH_THEME_DIR . '/components');
define('BUILDBENCH_EDITOR', BUILDBENCH_COMPONENTS . '/editor');
define('BUILDBENCH_EDITOR_ELEMENTOR', BUILDBENCH_EDITOR . '/elementor');
define('BUILDBENCH_EDITOR_GUTENBERG', BUILDBENCH_EDITOR . '/gutenberg');
define('BUILDBENCH_INSTALLATION', BUILDBENCH_CORE . '/installation-fragments');
define('BUILDBENCH_REMOTE_CONTENT', esc_url('http://demo.themewinter.com/demo-content/buildbench'));


// set up the content width value based on the theme's design
// ----------------------------------------------------------------------------------------
if (!isset($content_width)) {
    $content_width = 800;
}

// set up theme default and register various supported features.
// ----------------------------------------------------------------------------------------

function buildbench_setup() {

    // make the theme available for translation
    $lang_dir = BUILDBENCH_THEME_DIR . '/languages';
    load_theme_textdomain('buildbench', $lang_dir);

    // add support for post formats
    add_theme_support('post-formats', [
        'standard', 'image', 'video', 'audio','gallery','woocommerce'
    ]);

    // add support for automatic feed links
    add_theme_support('automatic-feed-links');

    // let WordPress manage the document title
    add_theme_support('title-tag');

    // add support for post thumbnails
    add_theme_support('post-thumbnails');

    // hard crop center center
    set_post_thumbnail_size(750, 465, ['center', 'center']);

 
     // woocommerce support
     add_theme_support( 'woocommerce', array(
        'thumbnail_image_width' => 600,
        'gallery_thumbnail_image_width' => 300,
        'single_image_width' => 600,
    ) );
    add_theme_support( 'wc-product-gallery-lightbox' );
    add_theme_support( 'wc-product-gallery-slider' );

 
    // register navigation menus
    register_nav_menus(
        [
            'primary' => esc_html__('Primary Menu', 'buildbench'),
            'footermenu' => esc_html__('Footer Menu', 'buildbench'),
        ]
    );

    // HTML5 markup support for search form, comment form, and comments
    add_theme_support('html5', array(
        'search-form', 'comment-form', 'comment-list', 'gallery', 'caption'
    ));
    /*
     * Enable support for wide alignment class for Gutenberg blocks.
     */
    add_theme_support( 'align-wide' );
    add_theme_support( 'editor-styles' );
    add_theme_support( 'wp-block-styles' );

}
add_action('after_setup_theme', 'buildbench_setup');

//Gutenberg optimization enqueue files
add_action('enqueue_block_editor_assets', 'buildbench_action_enqueue_block_editor_assets' );
function buildbench_action_enqueue_block_editor_assets() {
    wp_enqueue_style( 'buildbench-fonts', buildbench_google_fonts_url(['Montserrat:300,300i,400,400i,500,600,700,800,900', 'Open Sans:400,700']), null, BUILDBENCH_VERSION );
    wp_enqueue_style( 'buildbench-gutenberg-editor-font-awesome-styles', BUILDBENCH_CSS . '/font-awesome.css', null, BUILDBENCH_VERSION );
    wp_enqueue_style( 'buildbench-gutenberg-editor-customizer-styles', BUILDBENCH_CSS . '/gutenberg-editor-custom.css', null, BUILDBENCH_VERSION );
    wp_enqueue_style( 'buildbench-gutenberg-editor-styles', BUILDBENCH_CSS . '/gutenberg-custom.css', null, BUILDBENCH_VERSION );
    wp_enqueue_style( 'buildbench-gutenberg-blog-styles', BUILDBENCH_CSS . '/blog.css', null, BUILDBENCH_VERSION );
}



// hooks for unyson framework
// ----------------------------------------------------------------------------------------
function buildbench_framework_customizations_path($rel_path) {
    return '/components';
}
add_filter('fw_framework_customizations_dir_rel_path', 'buildbench_framework_customizations_path');


function buildbench_remove_fw_settings() {
    remove_submenu_page( 'themes.php', 'fw-settings' );
}
add_action( 'admin_menu', 'buildbench_remove_fw_settings', 999 );

function buildbench_under_dev(){}


// include the init.php
// ----------------------------------------------------------------------------------------
require_once( BUILDBENCH_CORE . '/init.php');
require_once( BUILDBENCH_COMPONENTS . '/editor/elementor/elementor.php');