__( 'Primary Menu', 'construction-hub' ), ) ); // Add theme support for Custom Logo. add_theme_support( 'custom-logo', array( 'width' => 250, 'height' => 250, 'flex-width' => true, ) ); // Add theme support for selective refresh for widgets. add_theme_support( 'customize-selective-refresh-widgets' ); add_theme_support( 'custom-background', array( 'default-color' => 'ffffff' ) ); /* * Enable support for Post Formats. * * See: https://codex.wordpress.org/Post_Formats */ add_theme_support( 'post-formats', array('image','video','gallery','audio',) ); /* * This theme styles the visual editor to resemble the theme style, * specifically font, colors, and column width. */ add_editor_style( array( 'assets/css/editor-style.css', construction_hub_fonts_url() ) ); } add_action( 'after_setup_theme', 'construction_hub_setup' ); /** * Register custom fonts. */ function construction_hub_fonts_url(){ $construction_hub_font_url = ''; $construction_hub_font_family = array(); $construction_hub_font_family[] = 'Fira Sans:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; $construction_hub_font_family[] = 'Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; $construction_hub_query_args = array( 'family' => rawurlencode(implode('|',$construction_hub_font_family)), ); $construction_hub_font_url = add_query_arg($construction_hub_query_args,'//fonts.googleapis.com/css'); return $construction_hub_font_url; } /** * Register widget area. */ function construction_hub_widgets_init() { register_sidebar( array( 'name' => __( 'Blog Sidebar', 'construction-hub' ), 'id' => 'sidebar-1', 'description' => __( 'Add widgets here to appear in your sidebar on blog posts and archive pages.', 'construction-hub' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Page Sidebar', 'construction-hub' ), 'id' => 'sidebar-2', 'description' => __( 'Add widgets here to appear in your sidebar on pages.', 'construction-hub' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Sidebar 3', 'construction-hub' ), 'id' => 'sidebar-3', 'description' => __( 'Add widgets here to appear in your sidebar on blog posts and archive pages.', 'construction-hub' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer 1', 'construction-hub' ), 'id' => 'footer-1', 'description' => __( 'Add widgets here to appear in your footer.', 'construction-hub' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer 2', 'construction-hub' ), 'id' => 'footer-2', 'description' => __( 'Add widgets here to appear in your footer.', 'construction-hub' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer 3', 'construction-hub' ), 'id' => 'footer-3', 'description' => __( 'Add widgets here to appear in your footer.', 'construction-hub' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Footer 4', 'construction-hub' ), 'id' => 'footer-4', 'description' => __( 'Add widgets here to appear in your footer.', 'construction-hub' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); } add_action( 'widgets_init', 'construction_hub_widgets_init' ); /** * Enqueue scripts and styles. */ function construction_hub_scripts() { // Add custom fonts, used in the main stylesheet. wp_enqueue_style( 'construction-hub-fonts', construction_hub_fonts_url(), array(), null ); // Bootstrap wp_enqueue_style( 'bootstrap', get_theme_file_uri( '/assets/css/bootstrap.css' ) ); // Theme stylesheet. wp_enqueue_style( 'construction-hub-style', get_stylesheet_uri() ); require get_parent_theme_file_path( '/tp-theme-color.php' ); require get_parent_theme_file_path( '/tp-body-width-layout.php' ); wp_add_inline_style( 'construction-hub-style',$construction_hub_tp_theme_css ); // Fontawesome wp_enqueue_style( 'fontawesome', get_theme_file_uri( '/assets/css/fontawesome-all.css' ) ); wp_enqueue_script( 'bootstrap', get_theme_file_uri( '/assets/js/bootstrap.js' ), array( 'jquery' ), true ); wp_enqueue_script( 'jquery-superfish', get_theme_file_uri( '/assets/js/jquery.superfish.js' ), array( 'jquery' ), '2.1.2', true ); wp_enqueue_script( 'construction-hub-custom-scripts', esc_url( get_template_directory_uri() ) . '/assets/js/construction-hub-custom.js', array('jquery'), true); wp_enqueue_script( 'construction-hub-focus-nav', esc_url( get_template_directory_uri() ) . '/assets/js/focus-nav.js', array('jquery'), true); if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } } add_action( 'wp_enqueue_scripts', 'construction_hub_scripts' ); /*radio button sanitization*/ function construction_hub_sanitize_choices( $input, $setting ) { global $wp_customize; $control = $wp_customize->get_control( $setting->id ); if ( array_key_exists( $input, $control->choices ) ) { return $input; } else { return $setting->default; } } /* Excerpt Limit Begin */ function construction_hub_string_limit_words($string, $word_limit) { $construction_hub_words = explode(' ', $string, ($word_limit + 1)); if(count($construction_hub_words) > $word_limit) array_pop($construction_hub_words); return implode(' ', $construction_hub_words); } function construction_hub_sanitize_dropdown_pages( $page_id, $setting ) { // Ensure $input is an absolute integer. $page_id = absint( $page_id ); // If $page_id is an ID of a published page, return it; otherwise, return the default. return ( 'publish' == get_post_status( $page_id ) ? $page_id : $setting->default ); } function construction_hub_sanitize_phone_number( $phone ) { return preg_replace( '/[^\d+]/', '', $phone ); } function construction_hub_sanitize_email( $email, $setting ) { // Strips out all characters that are not allowable in an email address. $email = sanitize_email( $email ); // If $email is a valid email, return it; otherwise, return the default. return ( ! is_null( $email ) ? $email : $setting->default ); } function construction_hub_sanitize_checkbox( $input ) { // Boolean check return ( ( isset( $input ) && true == $input ) ? true : false ); } function construction_hub_sanitize_number_absint( $number, $setting ) { // Ensure $number is an absolute integer (whole number, zero or greater). $number = absint( $number ); // If the input is an absolute integer, return it; otherwise, return the default return ( $number ? $number : $setting->default ); } function construction_hub_sanitize_number_range( $number, $setting ) { // Ensure input is an absolute integer. $number = absint( $number ); // Get the input attributes associated with the setting. $atts = $setting->manager->get_control( $setting->id )->input_attrs; // Get minimum number in the range. $min = ( isset( $atts['min'] ) ? $atts['min'] : $number ); // Get maximum number in the range. $max = ( isset( $atts['max'] ) ? $atts['max'] : $number ); // Get step. $step = ( isset( $atts['step'] ) ? $atts['step'] : 1 ); // If the number is within the valid range, return it; otherwise, return the default return ( $min <= $number && $number <= $max && is_int( $number / $step ) ? $number : $setting->default ); } // Change number or products per row to 3 add_filter('loop_shop_columns', 'construction_hub_loop_columns'); if (!function_exists('construction_hub_loop_columns')) { function construction_hub_loop_columns() { $columns = get_theme_mod( 'construction_hub_per_columns', 3 ); return $columns; } } //Change number of products that are displayed per page (shop page) add_filter( 'loop_shop_per_page', 'construction_hub_per_page', 20 ); function construction_hub_per_page( $cols ) { $cols = get_theme_mod( 'construction_hub_product_per_page', 9 ); return $cols; } /** * Use front-page.php when Front page displays is set to a static page. */ function construction_hub_front_page_template( $template ) { return is_home() ? '' : $template; } add_filter( 'frontpage_template','construction_hub_front_page_template' ); define('CONSTRUCTION_HUB_CREDIT',__('https://www.themespride.com/themes/free-construction-wordpress-theme/','construction-hub')); if ( ! function_exists( 'construction_hub_credit' ) ) { function construction_hub_credit(){ echo "".esc_html__('Themespride','construction-hub').""; } } /** * Implement the Custom Header feature. */ require get_parent_theme_file_path( '/inc/custom-header.php' ); /** * Custom template tags for this theme. */ require get_parent_theme_file_path( '/inc/template-tags.php' ); /** * Additional features to allow styling of the templates. */ require get_parent_theme_file_path( '/inc/template-functions.php' ); /** * Customizer additions. */ require get_parent_theme_file_path( '/inc/customizer.php' );