Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I'm trying to add a footer area to wordpress so I can drop widgets and things there. I see my footer area in the admin section, but if I add a text (or any other) widget and then save it, nothing shows up on the footer. If I refresh the page, the widget that I dragged to the right in my footer area is no longer listed there.

I checked the network requests and there aren't any errors that I'm seeing. Did I miss a step?

footer.php contains:

<?php
get_sidebar('footer_widget_area');
wp_footer();
?>

functions.php contains:

// Register widgetized areas
function theme_widgets_init() {
    // Area 1
  register_sidebar( array (
  'name' => 'Primary Widget Area',
  'id' => 'primary_widget_area',
  'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
  'after_widget' => "</li>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
  ) );

    // Area 2
  register_sidebar( array (
  'name' => 'Secondary Widget Area',
  'id' => 'secondary_widget_area', 
  'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
  'after_widget' => "</li>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
  ) );

    // Footer
  register_sidebar( array (
  'name' => 'Footer',
  'id' => 'footer_widget_area', 
  'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
  'after_widget' => "</li>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
  ) );
} // end theme_widgets_init

add_action( 'init', 'theme_widgets_init' );

Update: It's not just the new widget area I can't add widgets to, it's all of them.

share|improve this question
    
have you checked for javascript errors in console? –  Milo Jul 2 '13 at 17:09
    
@Milo Yes, unfortunately there's nothing there either. –  Webnet Jul 2 '13 at 17:29

2 Answers 2

You are using get_sidebar incorrectly. That function "Includes the sidebar.php template file from your current theme's directory." And if you include a parameter, it loads a file matching that parameter name, not a sidebar of that name.

If a name ($name) is specified then a specialized sidebar sidebar-{name}.php will be included.

What you want is dynamic_sidebar instead.

dynamic_sidebar('footer_widget_area');
share|improve this answer
    
+1 Thanks for pointing that out... though it didn't solve the issue on the admin side. –  Webnet Jul 2 '13 at 15:57
    
I can't duplicate that admin side error. Using the code in my answer plus your code, things work fine for me. –  s_ha_dum Jul 2 '13 at 16:01
    
Try your code with all plugins disabled, and using a default theme. You'll have to edit the theme to test it but it should be OK since this is temporary debugging and can be overwritten on update. –  s_ha_dum Jul 2 '13 at 16:10
    
It works with the default theme, doesn't work with mine. I'll dig through their theme and see if any of their code is different... –  Webnet Jul 2 '13 at 16:53
    
Everything I've done is consistent with the 2012 theme. Any other ideas on what could be causing the issue? –  Webnet Jul 2 '13 at 16:59

I think that using dynamic_sidebar you should actually be calling the index-order. Since dynamic_sidebar is supposed to be this:

dynamic_sidebar( $index ); 

So if you have 3 sidebars, then it should be:

dynamic_sidebar( 'sidebar-3' );
share|improve this answer
    
$index is name or ID field of the registered sidebar, not position. –  Milo Jul 2 '13 at 17:09

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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