Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

How to Enable Custom Background in WordPress 3.0 Themes

WordPress 3.0 introduces a new feature called custom backgrounds for WordPress themes. This feature will give the user an ability to add custom backgrounds to their site which will give their blogs/sites a unique touch. Even though this feature is added to the core, it will only be activated if your theme supports it. In this article, we will show you how you can enable Custom Background in WordPress themes for WordPress 3.0.

Note: This article is intermediate level article focused specially for theme designers.

Update: the code used in the video add_custom_background is depracated. Look at the code below in this article.

Video:

Text-tutorial

Simply open your functions.php file and add the following line:

add_theme_support('custom-background');

Then under appearance you should be able to see an option for Custom backgrounds.

Custom Background in WordPress 3.0

The default twenty ten theme for WordPress 3.0 already has this feature enabled in it.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

26 CommentsLeave a Reply

  1. bb

    Thank you Syed, this tweak just save me some thousand naira! Cheers.

  2. Stepan Vich

    Hi, Is there the possibility to add some field settings via add_settings_field function ??

  3. Michael

    This has been depricated. Here’s the new code:

    add_theme_support(‘custom-background’);

  4. Editorial Staff

    Very certain that you can use custom fields to change the background on each post / page if you want.

    Admin

  5. Abhimanyu

    There seems to be a problem. Just as I select the image file and click upload, it refreshes the page with no result. The ‘color’ thing works. And, I have tried many browsers.

    Any help? Can we do it manually? As in, by some codes?

  6. The Raptor

    Thank you for this. Implementing it wa actually much more simple than I initially thought

  7. John

    What is the default size for wordpress backgrounds? i.e. what size should images be for them to fit properly in the background.

    • Editorial Staff

      The best image is the one that can be repeated, so you keep the page load time small. WordPress will only show the background image that fits the screen resolution of the user.

      Admin

  8. chartinael

    My custom background section doesn’t have the display options. I installed 3.01 virgin.

  9. aleksander

    Same situation here:
    Fatal error: Call to undefined function add_custom_background() in /mnt/data/www/sinya/aleksander.hu/i.aleksander.hu/wp-content/themes/stylize/functions.php on line 34

    what to do?
    haven’t upgrade yet to 3.0.0

  10. Lane

    Hey I did what you said but i got this message

    Fatal error: Call to undefined function add_custom_background() in /home/patina/ilovepatina.com/wordpress/wp-content/themes/default/functions.php on line 2

    And now it won’t let me sign in at all to even go into the admin.
    Any advice? I need help bad…

  11. Ed

    Hey… that was cool. After my first comment, I am taken to a different page with more information about your website and commenting… how did you make that happen? Plugin?
    I’d love to know more.

    • Editorial Staff

      Its a plugin in our Recommended Plugins list. Go to our homepage and look there. :)

      Admin

  12. Ed

    It is important to note that for this to work within a theme, you must add the wp_head() after your theme stylesheet link in the theme header. This new function adds blocks with the added color/background from within the wp_head() section, and if you call your stylesheet after the wp_head(), your stylesheet will override the custom background function.

    I am torn, as I tend to call my stylesheet after the wp_head() call so that I can override styles added by plugins. May need to make a separate stylesheet for plugin overrides to be called later in the header.

  13. Pete

    Do you know how we do the custom header image as well?

  14. gifer

    hey thanks,btw is there any demo of it ?

  15. Pete

    So how does Wordpress know how to change the background? What if my current theme already has some background css attributes? Which one over-rides the other?

    • Editorial Staff

      Your current theme would have to be made compatible with this feature. This is article is for theme designers who are creating themes and want to get WordPress 3.0 features in it. You would have to add the function for body class. If WordPress see that someone has updated the Custom Backgrounds page in the admin panel, then it will be prioritized. Otherwise the default background that you specify in the css file prevails.

      Admin

  16. Dustin Goerndt

    Radical! I wonder, can these be done per post or page?

    • Editorial Staff

      With the default function NO. For that you are better of using a plugin (several exist). The way this function works is it adds styling to the overall body class, so it will be the same for the entire site.

      Admin

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.