Creating sidebar widgets for Menus in WP 3.0

Creating Side Bar widgets for Menus in WordPress 3.0
So you want to add sidebars to your website and do them dynamically. I am sure there are many ways to do this, but here is how I do it. You need FTP access to your wordpress site to do this. I use Dreamweaver to edit all my code. You can use whatever you like.
For this example, let’s say you have 5 categories: Home, Services, Blog, About, Contact Us, and there are 4 subpages under services. So you want to create some links to those pages and do it dynamically with wordpress.

Here are the steps:
1. We have to create new page template. So copy page.php and save it as a new page. Let’s call it services-page.php.
2. Open services page.php and put in your template name: * Template Name: Services, sidebar. This does under the /** Also, you will need to change the call to the sidebar to get the new page.
To do this find the call
Now replace it with:


The ‘services-sidebar’ is what I am calling this widget.
3. Now let’s create our custom sides bar where our custom side menu widget will be. Open sidebar.php and save it as services-sidebar.php.
Change this line:
From if ( ! dynamic_sidebar( ‘primary-widget-area’ ) ) : ?>
To if ( ! dynamic_sidebar( ‘services-sidebar’ ) ) : ?>

4. Next we need to register out new sidebar in the functions.php. I always suggest backing up your functions.php before making changes to it. So do this now.

5. Open Functions.pgp and find the line: function twentyten_widgets_init() {
There you will see several areas where widgets go. The first is:
// Area 1, located at the top of the sidebar.
register_sidebar( array(
‘name’ => __( ‘Primary Widget Area’, ‘twentyten’ ),
‘id’ => ‘primary-widget-area’,
‘description’ => __( ‘The primary widget area’, ‘twentyten’ ),
‘before_widget’ => ‘

  • ‘,
    ‘after_widget’ => ‘
  • ‘,
    ‘before_title’ => ‘

    ‘,
    ‘after_title’ => ‘

    ‘,
    ) );

    So we now need to make one for our new sidebar.
    Place it before the final } in the list of areas.

    Here is the code:
    // Area 7, located in the sidebar. Empty by default.
    register_sidebar( array(
    ‘name’ => __( ‘Services’, ‘twentyten’ ),
    ‘id’ => ‘services-sidebar’,
    ‘description’ => __( ‘This is the services sidebar’, ‘twentyten’ ),
    ‘before_widget’ => ‘

  • ‘,
    ‘after_widget’ => ‘
  • ‘,
    ‘before_title’ => ‘

    ‘,
    ‘after_title’ => ‘

    ‘,
    ) );
    6. Now that you have that registered, go into wordpress and look in the widgets under appearance. You should now see your new widget sidebar. If you do not see it make sure your naming convention is correct.
    7. Now we need to create the menu, so click on menus under appearance. Create a new menu and call it services.
    8. Drag the 4 subpages into this menu. You might also include the services tab. You can match the order of your dropdown by dragging them around. Now save your menu.
    9. Now go to the pages you want to have this new sidebar and change the Template to your new one – Services, sidebar.
    And you are done. You now have a custom vertical menu for the side of your page.
    Now you can style them however you like.

    Things to keep in mind.

    1. Always back up your functions.php file before messing with this. I typically download it, then rename the server one and re-upload it. Then renew the local one. So I have two backups.
    2. Make sure you naming convention is the same throughout all pages (sidebar, page and functions)

    Styling your drop down text

    By Dave Fogel | February 10, 2011

    With the basic wordpress install, you are able to nicely style the menu colors etc, but I have run into a problem several times where I use the same color to highlight which page I am on as the color of the background of my dropdown. So if I had a blue nav bar, my…

    Contact Form 7 Clear textarea

    By Dave Fogel | February 4, 2011

    Last time we talked about how to clear the input labels on Contact From 7 using a slight hack to the code. This is great for simply using input labels, but what about a text area? As I quickly found it, it doesn’t work. Why is doesn’t work is because the text area is controlled…

    Completed Google Analytics Essentials

    By Dave Fogel | February 3, 2011

    I just finished the Google Analytics Essential Training on Lynda.com. I thought it was well done and I did learn a few new things to help me better understand web traffic and how we can use GA to increase sales. The course is about four and a half hours, so it does take some time,…

    Posted in

    Dave Fogel

    Leave a Comment