Support » Themes and Templates » Twenty Eleven child theme dark option

  • Hello everyone,

    I’m using Version: 1.4 and have an active child theme with its own functions.php file on a local server.

    The child css imports style from parent but not for dark colour scheme because the parent functions.php calls it. However, it seems the dark.css has to be present in both parent and child?

    When I call dark.css from the child functions.php in exactly the same way that it’s called from parent I get

    Fatal error: Call to undefined function twentyeleven_get_theme_options()

    So do I have to call it from parent and child, or only parent?

    If I want to limit the amount of css to import, override or duplicate, can I disable dark colour scheme for parent and only call it from within child? Wouldn’t it be simpler to write “dark” styles directly into the child and not make use of theme options?


Viewing 12 replies - 1 through 12 (of 12 total)
  • In the child theme, you need to copy over the actual function before you call it. That message is saying, the function that your calling does not exist. Copy it over before calling it.

    Hi potentweb,
    I thought copying the function directly from parent functions.php would suffice but clearly not?
    How can I do that then?

    In your theme, the actual functions are located in themdirectory/inc/ folder? That is where the actual functions are and if you didn’t copy that over your going to get that error.

    twentyeleven_get_theme_options() is only calling the function it is NOT the function itself.

    It’s still producing the error.
    I should mention that there’s a lot going on in the child functions.php…
    Does it matter where the new function is included?
    Anyway here’s the code:

    function twentyeleven_setup() {
    // Add support for a variety of post formats
    	add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote', 'image' ) );
    	$theme_options = twentyeleven_get_theme_options();
    	if ( 'dark' == $theme_options['color_scheme'] )
    		$default_background_color = '1d1d1d';
    		$default_background_color = 'f1f1f1';

    Did you copy this part over? That is where it tells it to include the files.

    if ( ! isset( $content_width ) )
    	$content_width = 584;
     * Tell WordPress to run twentyeleven_setup() when the 'after_setup_theme' hook is run.
    add_action( 'after_setup_theme', 'twentyeleven_setup' );
    if ( ! function_exists( 'twentyeleven_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.
     * To override twentyeleven_setup() in a child theme, add your own twentyeleven_setup to your child theme's
     * functions.php file.
     * @uses load_theme_textdomain() For translation/localization support.
     * @uses add_editor_style() To style the visual editor.
     * @uses add_theme_support() To add support for post thumbnails, automatic feed links, custom headers
     * 	and backgrounds, and post formats.
     * @uses register_nav_menus() To add support for navigation menus.
     * @uses register_default_headers() To register the default custom header images provided with the theme.
     * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
     * @since Twenty Eleven 1.0
    function twentyeleven_setup() {
    	/* Make Twenty Eleven available for translation.
    	 * Translations can be added to the /languages/ directory.
    	 * If you're building a theme based on Twenty Eleven, use a find and replace
    	 * to change 'twentyeleven' to the name of your theme in all the template files.
    	load_theme_textdomain( 'twentyeleven', get_template_directory() . '/languages' );
    	// This theme styles the visual editor with editor-style.css to match the theme style.
    	// Load up our theme options page and related code.
    	require( get_template_directory() . '/inc/theme-options.php' );
    	// Grab Twenty Eleven's Ephemera widget.
    	require( get_template_directory() . '/inc/widgets.php' );
    	// Add default posts and comments RSS feed links to <head>.
    	add_theme_support( 'automatic-feed-links' );
    	// This theme uses wp_nav_menu() in one location.
    	register_nav_menu( 'primary', __( 'Primary Menu', 'twentyeleven' ) );
    	// Add support for a variety of post formats
    	add_theme_support( 'post-formats', array( 'aside', 'link', 'gallery', 'status', 'quote', 'image' ) );
    	$theme_options = twentyeleven_get_theme_options();
    	if ( 'dark' == $theme_options['color_scheme'] )
    		$default_background_color = '1d1d1d';
    		$default_background_color = 'f1f1f1';
    	// Add support for custom backgrounds.
    	add_theme_support( 'custom-background', array(
    		// Let WordPress know what our default background color is.
    		// This is dependent on our current color scheme.
    		'default-color' => $default_background_color,
    	) );
    	// This theme uses Featured Images (also known as post thumbnails) for per-post/per-page Custom Header images
    	add_theme_support( 'post-thumbnails' );
    	// Add support for custom headers.
    	$custom_header_support = array(
    		// The default header text color.
    		'default-text-color' => '000',
    		// The height and width of our custom header.
    		'width' => apply_filters( 'twentyeleven_header_image_width', 1000 ),
    		'height' => apply_filters( 'twentyeleven_header_image_height', 288 ),
    		// Support flexible heights.
    		'flex-height' => true,
    		// Random image rotation by default.
    		'random-default' => true,
    		// Callback for styling the header.
    		'wp-head-callback' => 'twentyeleven_header_style',
    		// Callback for styling the header preview in the admin.
    		'admin-head-callback' => 'twentyeleven_admin_header_style',
    		// Callback used to display the header preview in the admin.
    		'admin-preview-callback' => 'twentyeleven_admin_header_image',
    	add_theme_support( 'custom-header', $custom_header_support );
    	if ( ! function_exists( 'get_custom_header' ) ) {
    		// This is all for compatibility with versions of WordPress prior to 3.4.
    		define( 'HEADER_TEXTCOLOR', $custom_header_support['default-text-color'] );
    		define( 'HEADER_IMAGE', '' );
    		define( 'HEADER_IMAGE_WIDTH', $custom_header_support['width'] );
    		define( 'HEADER_IMAGE_HEIGHT', $custom_header_support['height'] );
    		add_custom_image_header( $custom_header_support['wp-head-callback'], $custom_header_support['admin-head-callback'], $custom_header_support['admin-preview-callback'] );
    	// We'll be using post thumbnails for custom header images on posts and pages.
    	// We want them to be the size of the header image that we just defined
    	// Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php.
    	set_post_thumbnail_size( $custom_header_support['width'], $custom_header_support['height'], true );
    	// Add Twenty Eleven's custom image sizes.
    	// Used for large feature (header) images.
    	add_image_size( 'large-feature', $custom_header_support['width'], $custom_header_support['height'], true );
    	// Used for featured posts if a large-feature doesn't exist.
    	add_image_size( 'small-feature', 500, 300 );
    	// Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI.
    	register_default_headers( array(
    		'wheel' => array(
    			'url' => '%s/images/headers/wheel.jpg',
    			'thumbnail_url' => '%s/images/headers/wheel-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Wheel', 'twentyeleven' )
    		'shore' => array(
    			'url' => '%s/images/headers/shore.jpg',
    			'thumbnail_url' => '%s/images/headers/shore-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Shore', 'twentyeleven' )
    		'trolley' => array(
    			'url' => '%s/images/headers/trolley.jpg',
    			'thumbnail_url' => '%s/images/headers/trolley-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Trolley', 'twentyeleven' )
    		'pine-cone' => array(
    			'url' => '%s/images/headers/pine-cone.jpg',
    			'thumbnail_url' => '%s/images/headers/pine-cone-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Pine Cone', 'twentyeleven' )
    		'chessboard' => array(
    			'url' => '%s/images/headers/chessboard.jpg',
    			'thumbnail_url' => '%s/images/headers/chessboard-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Chessboard', 'twentyeleven' )
    		'lanterns' => array(
    			'url' => '%s/images/headers/lanterns.jpg',
    			'thumbnail_url' => '%s/images/headers/lanterns-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Lanterns', 'twentyeleven' )
    		'willow' => array(
    			'url' => '%s/images/headers/willow.jpg',
    			'thumbnail_url' => '%s/images/headers/willow-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Willow', 'twentyeleven' )
    		'hanoi' => array(
    			'url' => '%s/images/headers/hanoi.jpg',
    			'thumbnail_url' => '%s/images/headers/hanoi-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Hanoi Plant', 'twentyeleven' )
    	) );

    That works, thanks!
    Last question, does doing this override or overwrite the parent?
    I’m asking because I wants to be safe when updates arrive, and don’t want duplicates unless required again in child – such as in this case the dark option.

    If you created a child theme, it is independant of the the parent theme so your safe.

    Thanks again for your input.

    No problem. Good luck!


    Actually I see it’s not working – it still references from parent dark.css and not from child.
    Where can I change this to look to child dark.css for styles?

    Did you copy over the css files to your child theme?

    Yes I did, and also copied functions call from parent into child functions.php as well as this:

Viewing 12 replies - 1 through 12 (of 12 total)
  • The topic ‘Twenty Eleven child theme dark option’ is closed to new replies.