I am trying to create a custom theme using Wordpress 3.4's customization options. I would like to create an option to change the theme's logo, but I would like to also display a default logo image.

I am using the following code in my function.php page:

$defaultbranding = "get_bloginfo('template_directory') . '/images/logo.png";

    $wp_customize->add_setting( 'change_branding', array(
        'default' => get_bloginfo('template_directory') . '/images/logo.png',
    ) );

    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'change_branding', array(
        'label'   => 'Image Control',
        'section' => 'theme_settings',
        'settings'   => 'change_branding',
    ) ) );

And in the theme's header.php page:

src='<?php echo get_theme_mod( 'change_branding' , 'default' ) ?>'

I would like the 'default' value on the front end to be:

get_bloginfo('template_directory') . '/images/logo.png'

Is there some way I can achieve this?

Thanks in advance for any help.


I had the same problem a few minutes ago. Here is what I used in the src tag:

<?php if (get_theme_mod( 'custom_logo_image' )) : echo get_theme_mod( 'custom_logo_image'); else: echo get_template_directory_uri().'/inc/images/default_logo.png'; endif; ?>

It seemed to solve my problem. Let me know if it works for you.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.