Home>Support>Updated Vantage Theme and now Fatal Error

Updated Vantage Theme and now Fatal Error

By robbarent, 9 years ago. Last reply by Daniel, 9 years ago.

Fatal error: Cannot redeclare vantage_register_custom_background() (previously declared in /home/jkicards/public_html/jessiekrause.com/wp-content/themes/vantage-child/functions.php:124) in /home/jkicards/public_html/jessiekrause.com/wp-content/themes/vantage/functions.php on line 194

The functions.php in child theme for custom background came from support answers and worked until recent update.

URL: http://www.jessiekrause.com

This is our free support forum. Replies can take several days. If you need fast email support, please purchase a SiteOrigin Premium license.

  1. 9 years, 5 months ago robbarent

    P.S. Renamed child function.php to function_old.php to get site up.

  2. 9 years, 5 months ago robbarent

    P.S.S. Is the problem with this line in your code for the child theme function.php:

    define( ‘SITEORIGIN_THEME_VERSION’ , ‘2.3.3’ );
    define(‘SITEORIGIN_THEME_ENDPOINT’, ‘http://updates.siteorigin.com/’);

    Does this code need to be updated each time vantage is updated?

  3. 9 years, 5 months ago Magus
    Hi, I Work Here

    Hi Robbarent

    Vantage now comes with this function built in. It is available through Appearance->Customize->Theme Design->Page.

    You should be able to safely remove that function from your child-theme’s function.php, but just to be certain could you please post that function within code tags in a reply.

    Thanks

    Magus

  4. 9 years, 5 months ago robbarent
    <?php
    /**
     * vantage functions and definitions
     *
     * @package vantage
     * @since vantage 1.0
     * @license GPL 2.0
     */
    
    define( 'SITEORIGIN_THEME_VERSION' , '2.3.3' );
    define('SITEORIGIN_THEME_ENDPOINT', 'http://updates.siteorigin.com/');
    
    if( file_exists( get_template_directory() . '/premium/functions.php' ) ){
    	include get_template_directory() . '/premium/functions.php';
    }
    else {
    	include get_template_directory() . '/upgrade/upgrade.php';
    }
    
    // Include all the SiteOrigin extras
    include get_template_directory() . '/extras/settings/settings.php';
    include get_template_directory() . '/extras/premium/premium.php';
    include get_template_directory() . '/extras/update/update.php';
    include get_template_directory() . '/extras/adminbar/adminbar.php';
    include get_template_directory() . '/extras/plugin-activation/plugin-activation.php';
    include get_template_directory() . '/extras/metaslider/metaslider.php';
    
    // Load the theme specific files
    include get_template_directory() . '/inc/panels.php';
    include get_template_directory() . '/inc/settings.php';
    include get_template_directory() . '/inc/extras.php';
    include get_template_directory() . '/inc/template-tags.php';
    include get_template_directory() . '/inc/gallery.php';
    include get_template_directory() . '/inc/metaslider.php';
    include get_template_directory() . '/inc/widgets.php';
    include get_template_directory() . '/inc/menu.php';
    include get_template_directory() . '/inc/woocommerce.php';
    include get_template_directory() . '/tour/tour.php';
    
    include get_template_directory() . '/fontawesome/icon-migration.php';
    
    
    if ( ! function_exists( 'vantage_setup' ) ) :
    /**
     * 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 post thumbnails.
     *
     * @since vantage 1.0
     */
    function vantage_setup() {
    
    	// Initialize SiteOrigin settings
    	siteorigin_settings_init();
    	
    	// Make the theme translatable
    	load_theme_textdomain( 'vantage', 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
    	add_theme_support( 'post-thumbnails' );
    
    	add_theme_support( 'siteorigin-panels', array(
    		'home-page' => true,
    		'margin-bottom' => 35,
    		'home-page-default' => 'default-home',
    		'home-demo-template' => 'home-panels.php',
    		'responsive' => siteorigin_setting( 'layout_responsive' ),
    	) );
    
    	// This theme uses wp_nav_menu() in one location.
    	register_nav_menus( array(
    		'primary' => __( 'Primary Menu', 'vantage' ),
    	) );
    
    	// Enable support for Post Formats
    	add_theme_support( 'post-formats', array( 'aside', 'image', 'video', 'quote', 'link' ) );
    
    	// We support WooCommerce
    	add_theme_support('woocommerce');
    	// define('WOOCOMMERCE_USE_CSS', false);
    
    	set_post_thumbnail_size(720, 380, true);
    	add_image_size('vantage-thumbnail-no-sidebar', 1080, 380, true);
    	add_image_size('vantage-slide', 960, 480, true);
    	add_image_size('vantage-carousel', 272, 182, true);
    	add_image_size('vantage-grid-loop', 436, 272, true);
    
    	add_theme_support( 'site-logo', array(
    		'size' => 'full',
    	) );
    
    	if( !defined('SITEORIGIN_PANELS_VERSION') && !siteorigin_plugin_activation_is_activating('siteorigin-panels') ){
    		// Only include panels lite if the panels plugin doesn't exist
    		include get_template_directory() . '/inc/panels-lite/panels-lite.php';
    	}
    
    	add_theme_support('siteorigin-premium-teaser', array(
    		'customizer' => true,
    		'settings' => true,
    	));
    
    	global $content_width, $vantage_site_width;
    	if ( ! isset( $content_width ) ) $content_width = 720; /* pixels */
    
    	if ( ! isset( $vantage_site_width ) ) {
    		$vantage_site_width = siteorigin_setting('layout_bound') == 'full' ? 1080 : 1010;
    	}
    }
    endif; // vantage_setup
    add_action( 'after_setup_theme', 'vantage_setup' );
    
    /**
     * Setup the WordPress core custom background feature.
     * 
     * @since vantage 1.0
     */
    function vantage_register_custom_background() {
    
    	if(siteorigin_setting('layout_bound') == 'boxed') {
    		$args = array(
    			'default-color' => 'e8e8e8',
    			'default-image' => '',
    		);
    
    		$args = apply_filters( 'vantage_custom_background_args', $args );
    		add_theme_support( 'custom-background', $args );
    	}
    
    }
    add_action( 'after_setup_theme', 'vantage_register_custom_background' );
    
    /**
     * Register widgetized area and update sidebar with default widgets
     *
     * @since vantage 1.0
     */
    function vantage_widgets_init() {
    	register_sidebar( array(
    		'name' => __( 'Sidebar', 'vantage' ),
    		'id' => 'sidebar-1',
    		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    		'after_widget' => '</aside>',
    		'before_title' => '<h3 class="widget-title">',
    		'after_title' => '</h3>',
    	) );
    
    	register_sidebar( array(
    		'name' => __( 'Footer', 'vantage' ),
    		'id' => 'sidebar-footer',
    		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    		'after_widget' => '</aside>',
    		'before_title' => '<h3 class="widget-title">',
    		'after_title' => '</h3>',
    	) );
    
    	register_sidebar( array(
    		'name' => __( 'Header', 'vantage' ),
    		'id' => 'sidebar-header',
    		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    		'after_widget' => '</aside>',
    		'before_title' => '<h3 class="widget-title">',
    		'after_title' => '</h3>',
    	) );
    }
    add_action( 'widgets_init', 'vantage_widgets_init' );
    
    function vantage_print_styles(){
    	if( !siteorigin_setting('layout_responsive') ) return;
    
    	// Create the footer widget CSS
    	$sidebars_widgets = wp_get_sidebars_widgets();
    	$count = isset($sidebars_widgets['sidebar-footer']) ? count($sidebars_widgets['sidebar-footer']) : 1;
    	$count = max($count,1);
    
    	?>
    	<style type="text/css" media="screen">
    		#footer-widgets .widget { width: <?php echo round(100/$count,3) . '%' ?>; }
    		@media screen and (max-width: 640px) {
    			#footer-widgets .widget { width: auto; float: none; }
    		}
    	</style>
    	<?php
    }
    add_action('wp_head', 'vantage_print_styles', 11);
    
    /**
     * Register all the bundled scripts
     */
    function vantage_register_scripts(){
    	wp_register_script( 'flexslider' , get_template_directory_uri() . '/js/jquery.flexslider.js' , array('jquery'), '2.1' );
    }
    add_action( 'wp_enqueue_scripts', 'vantage_register_scripts' , 5);
    
    /**
     * Enqueue scripts and styles
     */
    function vantage_scripts() {
    	wp_enqueue_style( 'vantage-style', get_stylesheet_uri(), array(), SITEORIGIN_THEME_VERSION );
    	wp_enqueue_style( 'vantage-fontawesome', get_template_directory_uri().'/fontawesome/css/font-awesome.css', array(), '4.2.0' );
    
    	$js_suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
    	wp_enqueue_script( 'flexslider' , get_template_directory_uri() . '/js/jquery.flexslider' . $js_suffix . '.js' , array('jquery'), '2.1' );
    	wp_enqueue_script( 'vantage-main' , get_template_directory_uri() . '/js/jquery.theme-main' . $js_suffix . '.js', array('jquery'), SITEORIGIN_THEME_VERSION );
    
    	if( siteorigin_setting( 'layout_fitvids' ) ) {
    		wp_enqueue_script( 'fitvids' , get_template_directory_uri() . '/js/jquery.fitvids' . $js_suffix . '.js' , array('jquery'), '1.0' );
    	}
    
    	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
    		wp_enqueue_script( 'comment-reply' );
    	}
    
    	if ( is_singular() && wp_attachment_is_image() ) {
    		wp_enqueue_script( 'keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation' . $js_suffix . '.js', array( 'jquery' ), '20120202' );
    	}
    }
    add_action( 'wp_enqueue_scripts', 'vantage_scripts' );
    
    /**
     * Enqueue any webfonts we need
     */
    function vantage_web_fonts(){
    	if( !siteorigin_setting('logo_image') ) {
    		wp_enqueue_style('vantage-google-webfont-roboto', '//fonts.googleapis.com/css?family=Roboto:300');
    	}
    }
    add_action( 'wp_enqueue_scripts', 'vantage_scripts' );
    
    
    /**
     * Add custom body classes.
     *
     * @param $classes
     *
     * @return array
     * @package vantage
     * @since 1.0
     */
    function vantage_body_class($classes){
    	if( siteorigin_setting('layout_responsive') ) $classes[] = 'responsive';
    	$classes[] = 'layout-'.siteorigin_setting('layout_bound');
    	$classes[] = 'no-js';
    
    	if( !is_active_sidebar('sidebar-1') ) {
    		$classes[] = 'no-sidebar';
    	}
    
    	if( wp_is_mobile() ) {
    		$classes[] = 'mobile-device';
    	}
    
    	if(siteorigin_setting('navigation_menu_search')) {
    		$classes[] = 'has-menu-search';
    	}
    
    	return $classes;
    }
    add_filter('body_class', 'vantage_body_class');
    
    function vantage_wp_head(){
    	?>
    	<!--[if lt IE 9]>
    		<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
    	<![endif]-->
    	<!--[if (gte IE 6)&(lte IE 8)]>
    		<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/selectivizr.js"></script>
    	<![endif]-->
    	<?php
    }
    add_action('wp_head', 'vantage_wp_head');
    
    /**
     * Display some text in the text area.
     */
    function vantage_top_text_area(){
    	echo wp_kses_post( siteorigin_setting('logo_header_text') );
    }
    add_action('vantage_support_text', 'vantage_top_text_area');
    
    /**
     * Display the scroll to top link.
     */
    function vantage_back_to_top() {
    	if( !siteorigin_setting('navigation_display_scroll_to_top') ) return;
    	?><a href="#" id="scroll-to-top" title="<?php esc_attr_e('Back To Top', 'vantage') ?>"><span class="vantage-icon-arrow-up"></span></a><?php
    }
    add_action('wp_footer', 'vantage_back_to_top');
    
    /**
     * @return mixed
     */
    function vantage_get_query_variables(){
    	global $wp_query;
    	$vars = $wp_query->query_vars;
    	foreach($vars as $k => $v) {
    		if(empty($vars[$k])) unset ($vars[$k]);
    	}
    	unset($vars['update_post_term_cache']);
    	unset($vars['update_post_meta_cache']);
    	unset($vars['cache_results']);
    	unset($vars['comments_per_page']);
    
    	return $vars;
    }
    
    /**
     * Render the slider.
     */
    function vantage_render_slider(){
    
    	if( is_front_page() && siteorigin_setting('home_slider') != 'none' ) {
    		$settings_slider = siteorigin_setting('home_slider');
    
    		if(!empty($settings_slider)) {
    			$slider = $settings_slider;
    		}
    	}
    
    	if( is_page() && get_post_meta(get_the_ID(), 'vantage_metaslider_slider', true) != 'none' ) {
    		$page_slider = get_post_meta(get_the_ID(), 'vantage_metaslider_slider', true);
    		if( !empty($page_slider) ) {
    			$slider = $page_slider;
    		}
    	}
    
    	if( empty($slider) ) return;
    
    	global $vantage_is_main_slider;
    	$vantage_is_main_slider = true;
    
    	?><div id="main-slider" <?php if( siteorigin_setting('home_slider_stretch') ) echo 'data-stretch="true"' ?>><?php
    
    
    	if($slider == 'demo') get_template_part('slider/demo');
    	elseif( substr($slider, 0, 5) == 'meta:' ) {
    		list($null, $slider_id) = explode(':', $slider);
    		$slider_id = intval($slider_id);
    
    		echo do_shortcode("[metaslider id=" . $slider_id . "]");
    	}
    
    	?></div><?php
    	$vantage_is_main_slider = false;
    }
    
    function vantage_post_class_filter($classes){
    	$classes[] = 'post';
    
    	if( has_post_thumbnail() && !is_singular() ) {
    		$classes[] = 'post-with-thumbnail';
    		$classes[] = 'post-with-thumbnail-' . siteorigin_setting('blog_featured_image_type');
    	}
    
    	$classes = array_unique($classes);
    	return $classes;
    }
    add_filter('post_class', 'vantage_post_class_filter');
    
    /**
     * Filter the posted on parts to remove the ones disabled in settings.
     *
     * @param $parts
     * @return mixed
     */
    function vantage_filter_vantage_post_on_parts($parts){
    	if(!siteorigin_setting('blog_post_author')) $parts['by'] = '';
    	if(!siteorigin_setting('blog_post_date')) $parts['on'] = '';
    
    	return $parts;
    }
    add_filter('vantage_post_on_parts', 'vantage_filter_vantage_post_on_parts');
    
    /**
     * Get the site width.
     *
     * @return int The side width in pixels.
     */
    function vantage_get_site_width(){
    	return apply_filters('vantage_site_width', !empty($GLOBALS['vantage_site_width']) ? $GLOBALS['vantage_site_width'] : 1080);
    }
    
    /**
     * Add the responsive header
     */
    function vantage_responsive_header(){
    	if( siteorigin_setting('layout_responsive') ) {
    		?><meta name="viewport" content="width=device-width, initial-scale=1" /><?php
    	}
    	else {
    		?><meta name="viewport" content="width=1280" /><?php
    	}
    }
    add_action('wp_head', 'vantage_responsive_header');
    
    /**
    
     * Handles the site title, copyright symbol and year string replace for the Footer Copyright theme option.
    
     */
    function vantage_footer_site_info_sub($copyright){
    
    	return str_replace(
    
    		array('{site-title}', '{copyright}', '{year}'),
    
    		array(get_bloginfo('name'), '©', date('Y')),
    
    		$copyright
    
    	);
    
    }
    
    add_filter( 'vantage_site_info', 'vantage_footer_site_info_sub' );
    
    
    function dhvc_woo_query_args_custom($query_args){
        $query_args['orderby'] = 'meta_value_num';
        $query_args['meta_key'] = '_sku';
        $query_args['order'] = 'ASC';
        return $query_args;
    }
    add_filter('dhvc_woo_query_args', 'dhvc_woo_query_args_custom',100,1);
    
    
    
  5. 9 years, 5 months ago Magus
    Hi, I Work Here

    Hi Robbarent,

    There is your problem. You Child theme’s function.php should not have been made as a copy of the Vantage Premium Function.php.

    Please delete [b]everything[/b] from your child-theme’s function.php and replace it with this.

    <?php
    
    /**
     * Enqueue the parent theme stylesheet.
     */
    
    add_action( 'wp_enqueue_scripts', 'vantage_parent_style' );
    function vantage_parent_style() {
        wp_enqueue_style( 'parent-theme', get_template_directory_uri() . '/style.css' );
    }
    
    /**
     * Enqueue the child theme stylesheet.
     */
    
    add_action( 'wp_enqueue_scripts', 'vantage_child_style', 20 );
    function vantage_child_style() {
        wp_enqueue_style( 'child-theme', get_stylesheet_uri() );
    }
    
    function dhvc_woo_query_args_custom($query_args){
        $query_args['orderby'] = 'meta_value_num';
        $query_args['meta_key'] = '_sku';
        $query_args['order'] = 'ASC';
        return $query_args;
    }
    add_filter('dhvc_woo_query_args', 'dhvc_woo_query_args_custom',100,1);
    

    This is the correct layout for a Child theme function.php, with your added functions at the bottom.

    Let us know how you get on

    Magus

  6. 9 years, 5 months ago robbarent

    Seems to work — Thanks.

    I don’t know enough than to follow directions — that was what I did with the prior function.php.

  7. 9 years, 5 months ago Daniel
    Hi, I Work Here

    Hi Robbarent

    Am glad you are making progress in developing your site :)

    Always feel free to open a new thread whenever you require support

    @Magus thanks for the effort, much appreciated :)

    Cheers

Replies on this thread are closed. Please create a new thread if you have a question, or purchase a SiteOrigin Premium license if you need one-on-one email support.

Get The Most Out of SiteOrigin with SiteOrigin Premium

Find Out More