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)

    Signed up For ClickTale

    By Dave Fogel | January 12, 2011

    We are always looking for better ways to get data from the web. Clicktale is a pretty cool product that allows you to generate heatmaps of you site and find out what people are doing. There is a free trial. Check it out. www.clicktale.com

    Adding WordPress 3.0 Menu support to your older site

    By Dave Fogel | January 12, 2011

    I have come across this a few times when updating older sites to WordPress 3.0 that the fancy new menu system in WP3.0 doesn’t work. Fortunately, this is an easy fix. First off, you will be editing your functions.php file, so make a backup! Now, add this code to your funtions.php file: add_action( ‘init’, ‘register_my_menus’…

    Having Multiple Footers in wordpress

    By Dave Fogel | January 11, 2011

    Sometimes I like to have multiple footers for a site, or at least one for the homepage and one for the rest of the site. Fortunetly, wordpress makes this really easy to do. WordPress has a special template tag for including them into your theme: This function will accept only one parameter, a string, which…

    Posted in

    Dave Fogel

    Leave a Comment