200, 'width' => 120, 'flex-height' => true, ) ); /** * Enable support for Post Formats */ add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link' ) ); /** * Setup the WordPress core custom background feature. */ add_theme_support( 'custom-background', apply_filters( 'ascent_custom_background_args', array( 'default-color' => 'ffffff', 'default-image' => '', ) ) ); /* Set header image */ $default_banner_image = ascent_get_options( 'asc_default_banner_image' ); $default_banner_image = ( $default_banner_image ) ? $default_banner_image : ASCENT_THEME_URI .'includes/images/banner.jpg'; //Enable support for custom header. $defaults = array( 'width' => 1920, 'height' => 300, 'flex-height' => false, 'flex-width' => false, 'default-image' => $default_banner_image ); add_theme_support( 'custom-header', $defaults ); /* Add Menu Support */ register_nav_menus( array( 'main-menu' => __( 'Main Menu', 'ascent' ) ) ); /* Add Post Thumbnails Support and Related Image Sizes */ add_image_size( 'blog-page', 732, 9999, false ); // For Blog Page add_image_size( 'default-page', 1140, 9999, false ); // Default Page and Full Width Page add_image_size( 'blog-post-thumb', 732, 447, true ); // For Home Blog Section and Gallery Slider on Single and Blog Page /** * Make theme available for translation * Translations can be filed in the /languages/ directory * If you're building a theme based on ascent, use a find and replace * to change 'ascent' to the name of your theme in all the template files */ load_theme_textdomain( 'ascent', ASCENT_THEME_DIR . 'languages' ); /** * This function allow to import all old options to customizer options */ ascent_import_old_theme_options_to_customizer(); /* Redirect to Info page */ global $pagenow; if ( is_admin() && 'themes.php' == $pagenow && isset( $_GET['activated'] ) ) { wp_redirect( add_query_arg( array( 'page' => 'ascent-details', 'updated' => 'true' ), admin_url( 'themes.php' ) ) ); exit (); } } endif; // ascent_setup add_action( 'after_setup_theme', 'ascent_setup' ); /** * Import old theme options to customizer settings. * Delete the old theme options once imported. * Added a "imported" flag to database. */ if( !function_exists( 'ascent_import_old_theme_options_to_customizer' ) ) { function ascent_import_old_theme_options_to_customizer() { if( ! get_option( 'ascent_imported_old_options' ) ) { $option_name = get_option( 'stylesheet' ); $option_name = preg_replace( "/\W/", "_", strtolower( $option_name ) ); $old_options = get_option( $option_name ); if( ! empty($old_options ) && isset( $old_options ) ) { $theme_mods_ascent = get_option( 'theme_mods_ascent' ); $theme_mods_ascent = $theme_mods_ascent['ascent_theme_options']; foreach( $old_options as $name => $value ) { $theme_mods_ascent['asc_'.$name] = $value; } if($theme_mods_ascent) { set_theme_mod( 'ascent_theme_options', $theme_mods_ascent ); } update_option( 'ascent_imported_old_options', '1', 'yes' ); delete_option( 'ascent'); } } } } /** * Register widgetized area and update sidebar with default widgets */ function ascent_widgets_init() { register_sidebar( array( 'name' => __( 'Sidebar', 'ascent' ), 'id' => 'sidebar-1', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Sidebar Footer', 'ascent' ), 'id' => 'sidebar-footer', 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); } add_action( 'widgets_init', 'ascent_widgets_init' ); /** * Enqueue scripts and styles * */ function ascent_scripts() { $enable_swipebox = ascent_get_options( 'asc_enable_swipebox' ); $enable_sticky_header = ascent_get_options( 'asc_enable_sticky_header' ); $body_font_family = ascent_get_options( 'asc_body_font_family' ); $protocol = is_ssl() ? 'https' : 'http'; $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; if( $body_font_family ) { $fonts_array = explode( '|||', $body_font_family ); wp_enqueue_style('ascent-google-font', $fonts_array[1]); } else { wp_enqueue_style('google-opensans', "$protocol://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"); } // load bootstrap css wp_enqueue_style( 'bootstrap', ASCENT_THEME_URI . 'includes/resources/bootstrap/css/bootstrap'. $min .'.css' ); if( $enable_swipebox ) { //check if enable swipebox from theme options wp_enqueue_style( 'swipebox', ASCENT_THEME_URI . 'includes/css/swipebox'. $min .'.css' ); } wp_enqueue_style( 'owl-carousel', ASCENT_THEME_URI . 'includes/css/owl.carousel'. $min .'.css' ); wp_enqueue_style( 'owl-theme', ASCENT_THEME_URI . 'includes/css/owl.theme.default'. $min .'.css' ); wp_enqueue_style( 'ascent-animations', ASCENT_THEME_URI . 'includes/css/animations'. $min .'.css' ); wp_enqueue_style( 'meanmenu', ASCENT_THEME_URI . 'includes/css/meanmenu'. $min .'.css' ); wp_enqueue_style( 'ascent-main', ASCENT_THEME_URI . 'includes/css/main'. $min .'.css' ); // load ascent styles wp_enqueue_style( 'ascent-style', get_stylesheet_uri() ); // load bootstrap js wp_enqueue_script( 'bootstrap', ASCENT_THEME_URI.'includes/resources/bootstrap/js/bootstrap'. $min .'.js', array( 'jquery' ) ); // load bootstrap wp js wp_enqueue_script( 'ascent-bootstrapwp', ASCENT_THEME_URI . 'includes/js/bootstrap-wp'. $min .'.js', array( 'jquery' ) ); wp_enqueue_script( 'ascent-skip-link-focus-fix', ASCENT_THEME_URI . 'includes/js/skip-link-focus-fix'. $min .'.js', array(), ASCENT_THEME_VERSION, true ); // Load the html5 shiv. wp_enqueue_script( 'html5', ASCENT_THEME_URI . 'includes/js/html5'. $min .'.js', array(), ASCENT_THEME_VERSION, true ); wp_script_add_data( 'html5', 'conditional', 'lt IE 9' ); if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } if ( is_singular() && wp_attachment_is_image() ) { wp_enqueue_script( 'ascent-keyboard-image-navigation', ASCENT_THEME_URI . 'includes/js/keyboard-image-navigation'. $min .'.js', array( 'jquery' ), ASCENT_THEME_VERSION ); } if( $enable_swipebox ) { //check if enable swipebox from theme options wp_enqueue_script( 'swipebox', ASCENT_THEME_URI . 'includes/js/jquery.swipebox.min.js', array( 'jquery' ) ); wp_enqueue_script( 'ascent-swipebox-config', ASCENT_THEME_URI . 'includes/js/swipebox-config'. $min .'.js', array('jquery') ); } wp_enqueue_script( 'owl-carousel', ASCENT_THEME_URI . 'includes/js/owl.carousel'. $min .'.js', array( 'jquery' ) ); wp_enqueue_script( 'appear', ASCENT_THEME_URI . 'includes/js/jquery.appear'. $min .'.js', array( 'jquery' ) ); wp_enqueue_script( 'meanmenu', ASCENT_THEME_URI . 'includes/js/jquery.meanmenu'. $min .'.js', array( 'jquery' ) ); wp_enqueue_script( 'velocity', ASCENT_THEME_URI . 'includes/js/jquery.velocity'. $min .'.js', array( 'jquery' ) ); wp_enqueue_script( 'ascent-appear-config', ASCENT_THEME_URI . 'includes/js/appear.config'. $min .'.js', array( 'jquery' ) ); // Theme main js wp_enqueue_script( 'ascent-themejs', ASCENT_THEME_URI . 'includes/js/main'. $min .'.js', array( 'jquery' ) ); if( $enable_sticky_header ) { wp_enqueue_script( 'ascent-enable-sticky-header', ASCENT_THEME_URI . '/includes/js/enable-sticky-header'. $min .'.js', array( 'jquery' ) ); } } add_action( 'wp_enqueue_scripts', 'ascent_scripts' ); /** * Ascent theme options * */ function ascent_get_options( $id, $default = false ) { // assigning theme name $themename = get_option( 'stylesheet' ); $themename = preg_replace( "/\W/", "_", strtolower( $themename ) ); $themename_option_slug = 'ascent_theme_options'; // getting options value $ascent_options = get_theme_mod( $themename_option_slug ); if ( isset( $ascent_options[ $id ] ) ) { return $ascent_options[ $id ]; } else { return $default; } } /** * Custom template tags for this theme. */ require ASCENT_THEME_DIR . 'includes/template-tags.php'; require_once ASCENT_THEME_DIR . 'includes/core/theme-hooks.php'; /** * Custom functions that act independently of the theme templates. */ require ASCENT_THEME_DIR . 'includes/extras.php'; /** * Customizer additions. */ require_once ASCENT_THEME_DIR . 'includes/customizer/class-ascent-customizer.php'; /** * Load info. */ if ( is_admin() ) { require ASCENT_THEME_DIR.'includes/info/class.info.php'; require ASCENT_THEME_DIR.'includes/info/info.php'; } /** * Dynamic CSS. */ require_once ASCENT_THEME_DIR . 'includes/css/theme-color-scheme/dynamic-css.php'; /** * Jetpack Compatibility */ require_once ASCENT_THEME_DIR . 'includes/compatibility/class-ascent-jetpack.php'; /* Theme Social media icons */ if( ! function_exists( 'ascent_socialmedia_navs' ) ){ function ascent_socialmedia_navs() { return array( 'asc_twitter_url' => 'fab fa-twitter', 'asc_facebook_url' => 'fab fa-facebook', 'asc_google_plus_url' => 'fab fa-google-plus', 'asc_linkedin_url' => 'fab fa-linkedin', 'asc_instagram_url' => 'fab fa-instagram', 'asc_youtube_url' => 'fab fa-youtube', 'asc_skype_url' => 'fab fa-skype', 'asc_dribbble_url' => 'fab fa-dribbble', 'asc_digg_url' => 'fab fa-digg', 'asc_github_url' => 'fab fa-github', 'asc_delicious_url' => 'fab fa-delicious', 'asc_reddit_url' => 'fab fa-reddit', 'asc_pinterest_url' => 'fab fa-pinterest', 'asc_flickr_url' => 'fab fa-flickr', 'asc_rss_url' => 'fas fa-rss-square', 'asc_whatsapp_number' => 'fab fa-whatsapp-square' ); } } /* Theme Home Slider options */ if( ! function_exists( 'ascent_home_slider' ) ){ function ascent_home_slider() { return array( 'item_1' => array( 'image' => 'asc_slider_image_1', 'video' => 'asc_slider_video_1', 'description' => 'asc_slider_description_1', ), 'item_2' => array( 'image' => 'asc_slider_image_2', 'video' => 'asc_slider_video_2', 'description' => 'asc_slider_description_2', ), 'item_3' => array( 'image' => 'asc_slider_image_3', 'video' => 'asc_slider_video_3', 'description' => 'asc_slider_description_3', ), 'item_4' => array( 'image' => 'asc_slider_image_4', 'video' => 'asc_slider_video_4', 'description' => 'asc_slider_description_4', ), 'item_5' => array( 'image' => 'asc_slider_image_5', 'video' => 'asc_slider_video_5', 'description' => 'asc_slider_description_5', ), ); } } /* Generate YouTube embed url */ if( ! function_exists( 'ascent_generate_youtube_embed_url' ) ) { function ascent_generate_youtube_embed_url( $url ) { $shortUrlRegex = '/youtu.be\/([a-zA-Z0-9_-]+)\??/i'; $longUrlRegex = '/youtube.com\/((?:embed)|(?:watch))((?:\?v\=)|(?:\/))([a-zA-Z0-9_-]+)/i'; if (preg_match($longUrlRegex, $url, $matches)) { $youtube_id = $matches[count($matches) - 1]; } if (preg_match($shortUrlRegex, $url, $matches)) { $youtube_id = $matches[count($matches) - 1]; } return '//www.youtube.com/embed/'.$youtube_id; } } /* Generate Vimeo embed url */ if( !function_exists( 'ascent_generate_vimeo_embed_url' ) ) { function ascent_generate_vimeo_embed_url( $url ) { preg_match( '/\/\/(www\.)?vimeo.com\/(\d+)($|\/)/', $url, $matches ); //the ID of the Vimeo URL: 71673549 $id = $matches[2]; return 'http://player.vimeo.com/video/'.$id.'?title=0&byline=0&portrait=0&badge=0&color=ffffff'; } } /* Check video type */ if( !function_exists( 'ascent_check_video_type' ) ) { function ascent_check_video_type( $url ) { if ( strpos( $url, 'youtube' ) > 0 ) { return 'youtube'; } elseif ( strpos( $url, 'vimeo') > 0 ) { return 'vimeo'; } else { return 'unknown'; } } } /* * The CSS file selected in the options panel 'stylesheet' option * is loaded on the theme front end */ if( !function_exists( 'ascent_options_stylesheets_alt_style' ) ) { function ascent_options_stylesheets_alt_style() { $theme_color_scheme = ascent_get_options( 'asc_theme_color_scheme' ); if ( $theme_color_scheme && $theme_color_scheme !== 'default' ) { $select_color_scheme = ascent_get_options( 'asc_theme_color_scheme' ); $color_scheme_css_path = ASCENT_THEME_URI . 'includes/css/theme-color-scheme/'.$select_color_scheme.'.css'; wp_enqueue_style( $select_color_scheme, $color_scheme_css_path, array(), null ); } } } add_action( 'wp_enqueue_scripts', 'ascent_options_stylesheets_alt_style' ); if ( ! function_exists( 'ascent_get_pro_url' ) ) : /** * Returns an URL with utm tags * the admin settings page. * * @param string $url URL fo the site. * @param string $source utm source. * @param string $medium utm medium. * @param string $campaign utm campaign. * @return mixed */ function ascent_get_pro_url( $url, $source = '', $medium = '', $campaign = '' ) { $url = trailingslashit( $url ); // Set up our URL if we have a source. if ( isset( $source ) ) { $url = add_query_arg( 'utm_source', sanitize_text_field( $source ), $url ); } // Set up our URL if we have a medium. if ( isset( $medium ) ) { $url = add_query_arg( 'utm_medium', sanitize_text_field( $medium ), $url ); } // Set up our URL if we have a campaign. if ( isset( $campaign ) ) { $url = add_query_arg( 'utm_campaign', sanitize_text_field( $campaign ), $url ); } return esc_url( $url ); } endif;