In WordPress theme development, creating a sidebar means registering a widget area, displaying it in your theme file, and then letting users add widgets via the WordPress Dashboard.
Here’s the step-by-step process:
1. Register a Sidebar in functions.php
Add this code inside your theme’s functions.php:
<?php
function mytheme_register_sidebar() {
register_sidebar( array(
'name' => __( 'Main Sidebar', 'mytheme' ),
'id' => 'main-sidebar',
'description' => __( 'Widgets in this area will be shown in the sidebar.', 'mytheme' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
}
add_action( 'widgets_init', 'mytheme_register_sidebar' );
id→ unique identifier for the sidebar.before_widgetandafter_widget→ HTML wrapper for each widget.before_titleandafter_title→ HTML wrapper for widget titles.
2. Display Sidebar in Your Theme
Wherever you want the sidebar (e.g. sidebar.php or inside index.php), add:
<?php if ( is_active_sidebar( 'main-sidebar' ) ) : ?>
<aside id="secondary" class="sidebar">
<?php dynamic_sidebar( 'main-sidebar' ); ?>
</aside>
<?php endif; ?>
is_active_sidebar()checks if the sidebar has widgets.dynamic_sidebar()outputs the widgets.
3. Add Widgets via Dashboard
- Go to Appearance → Widgets (or Appearance → Customize → Widgets).
- Drag and drop widgets (e.g., Recent Posts, Categories, Custom HTML) into your Main Sidebar.
4. Style Sidebar with CSS (Optional)
Example:
.sidebar {
width: 300px;
float: right;
padding: 20px;
background: #f9f9f9;
}
.sidebar .widget {
margin-bottom: 20px;
}
.sidebar .widget-title {
font-size: 18px;
margin-bottom: 10px;
border-bottom: 2px solid #ccc;
}
✅ Now you have a working sidebar in your theme.