if ( function_exists('register_sidebar') )
        "name" => "Top Widget Area",
        "id" => "topWidgetArea-$i",

I just create a new sidebar with this.
I'm displaying this sidebar in my header.php like this:

<?php dynamic_sidebar( "Top Widget Area" ); ?> 

It's displaying no problem and I can put every widget to my sidebar in wp-admin's Appearance → Widgets page. When I refresh this widgets page, all the widgets (which are in the Top Widget Area) are disappearing. I'll explain it with a video. Please check: http://screenr.com/szG8

4 Answers 4


Changing widget's ID from topWidgetArea to top-widget-area solved my problem. Widget ID must have hypen. I tried a lots of variations for ID (like testtesttest, asdasdasd, widgetareaaa) . I'm not sure, why .

  • No capitals are allowed either.
    – MrJD
    Jun 29, 2012 at 5:01

You are not allowed capitals that is why it doesn't work.

Use a name like this-dynamic-sidebar or this_dynamic_sidebar. It should be the same name used when you registered the sidebar.

  • That is not exactly true. I have have used capital letters in my theming for sidebars and have had no problems. To me with this site it seems to me to be a caching issue.
    – Nicole
    Oct 18, 2012 at 18:14

It is the variable $i that is the issue, causing probably a php error because it is not defined.

Just had the same issue. Removing the id prams solved the issue.


Parameters for register_sidebar, from http://codex.wordpress.org/Function_Reference/register_sidebar#Parameters:

id - Sidebar id - Must be all in lowercase, with no spaces (default is a numeric auto-incremented ID).

Hyphens and underscores are not required. Just no uppercase, no spaces.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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