0
votes

I've got a quick question. I'm working on making a child theme of the Twentyseventeen theme, and I'm trying to override the custom_header code but I'm getting the following error:

PHP Fatal error:  Cannot redeclare twentyseventeen_custom_header_setup() (previously declared in /Applications/MAMP/htdocs/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php:36) in /Applications/MAMP/htdocs/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php on line 52

I tried renaming the function so it would not be redeclared but that did not resolve the issue. So far I have not really added any additional code to my theme. I have also mimicked the directory structure to be the same as the parent theme:

assets functions.php inc custom_header.php index.php ...

Here are the files I have so far:

Functions.php

<?php

function twentyseventeenchild_enqueue_styles() { $parent_style = 'parent-style';

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
    get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style )
    );
}
add_action( 'wp_enqueue_scripts', 'twentyseventeenchild_enqueue_styles' );

/**
* Implement the Custom Header feature.
*/
require get_parent_theme_file_path( '/inc/custom-header.php' );
?>

custom_header.php

<?php

/** * Custom header implementation * * @link https://codex.wordpress.org/Custom_Headers * * @package WordPress * @subpackage Twenty_Seventeen * @since 1.0 */

/** * Set up the WordPress core custom header feature. * * @uses twentyseventeen_header_style() */ function twentyseventeen_custom_header_setup() {

/**
 * Filter Twenty Seventeen custom-header support arguments.
 *
 * @since Twenty Seventeen 1.0
 *
 * @param array $args {
 *     An array of custom-header support arguments.
 *
 *     @type string $default-image          Default image of the header.
 *     @type string $default_text_color     Default color of the header text.
 *     @type int    $width                  Width in pixels of the custom header image. Default 954.
 *     @type int    $height                 Height in pixels of the custom header image. Default 1300.
 *     @type string $wp-head-callback       Callback function used to styles the header image and text
 *                                          displayed on the blog.
 *     @type string $flex-height            Flex support for height of header.
 * }
 */
add_theme_support( 'custom-header', apply_filters( 'twentyseventeen_custom_header_args', array(
    'default-image'      => get_parent_theme_file_uri( '/assets/images/header.jpg' ),
    'width'              => 2000,
    'height'             => 1200,
    'flex-height'        => true,
    'video'              => true,
    'wp-head-callback'   => 'twentyseventeen_header_style',
) ) );

register_default_headers( array(
    'default-image' => array(
        'url'           => '%s/assets/images/header.jpg',
        'thumbnail_url' => '%s/assets/images/header.jpg',
        'description'   => __( 'Default Header Image', 'twentyseventeen' ),
    ),
) );
}
add_action( 'after_setup_theme', 'twentyseventeen_custom_header_setup' );
?>
1

1 Answers

1
votes

Just after I posted my question. All I had to do to is to add this code to my functions.php

$custom_header_args = array(
    'default-image' => get_theme_file_uri( '/assets/images/header.jpg' ),
    'width' => 2000,
    'height' => 1200,
    'flex-height' => true,
    'video' => true,
);
add_theme_support('custom-header', $custom_header_args);