Default Image appears blank – WordPress Theme Customization API

I want to make it possible for users of my theme to replace the banner through Theme Customization API. I have got it working, however, the default image appears blank and when I click “view page source” I get the following:

<img src=" " alt="banner" />

The default image shows up in the preview inside the API window, but not in the browser. The moment I upload a banner to replace the default banner with, it works perfectly. But I just can’t get the default image to appear. Am I doing something wrong?

Read More

This is in my functions.php:

// Start New Section for Images
$wp_customize->add_section('customtheme_images', array(
'title' => _('Images'),
'description' => 'Change Images'
));
$wp_customize->add_setting('banner_image', array(
'default' => 'http://mywebsite.com/banner.jpg',
));
$wp_customize->add_control( new WP_Customize_Image_Control ($wp_customize,   'banner_image', array(
'label' => _('Change Banner'),
'section' => 'customtheme_images',
'settings' => 'banner_image'
) )); 

And, this is inside my header.php:

<img src="<?php echo get_theme_mod('banner_image'); ?>" alt="banner">

And yes I have tripple checked the path of the default image, and it is corrent. Please help!

Related posts

Leave a Reply

2 comments

  1. When using $wp_customize->add_setting('banner_image', array(
    'default' => 'http://mywebsite.com/banner.jpg',
    ));
    the default value is not saved into the database (until you save).

    So you will have to use: <img src="<?php echo get_theme_mod('banner_image','http://mywebsite.com/banner.jpg'); ?>" alt="banner">

    The problem you describe is some kind related to: https://wordpress.stackexchange.com/questions/129479/alternatives-to-handle-customizer-settings

  2. I have the same situation here. The problem with the solution below:

    <?php echo get_theme_mod('banner_image','http://mywebsite.com/banner.jpg'); ?>

    I need the user to be able to delete the default image. This default image will only be used for the initial display of the theme. So I need a solution that when activating the theme, is already saved in the database.