Hey Justin, how are you?
I had he same need as you for creating widgetized areas above the footer so here is what I did with Chris's kind help:
First, make sure you get the lates SVN copy of thematic. If you don't know how to do it look at this post: http://themeshaper.com/forums/topic/how-to-get-the-latest-svn-copy-of-thematic
Then, put this into your child theme's function.php file between the <?php and ?>
function create_my_widgetized_areas($content) {
$content['1st Above Footer Aside'] = array(
'admin_menu_order' => 510,
'args' => array (
'name' => '1st Above Footer Aside',
'id' => 'first-above-footer-aside',
'before_widget' => thematic_before_widget(),
'after_widget' => thematic_after_widget(),
'before_title' => thematic_before_title(),
'after_title' => thematic_after_title(),
),
'action_hook' => 'above_footer_widgets',
'function' => 'add_widgetized_areas',
'priority' => 10,
);
$content['2nd Above Footer Aside'] = array(
'admin_menu_order' => 520,
'args' => array (
'name' => '2nd Above Footer Aside',
'id' => 'second-above-footer-aside',
'before_widget' => thematic_before_widget(),
'after_widget' => thematic_after_widget(),
'before_title' => thematic_before_title(),
'after_title' => thematic_after_title(),
),
'action_hook' => 'above_footer_widgets',
'function' => 'add_widgetized_areas',
'priority' => 10,
);
$content['3rd Above Footer Aside'] = array(
'admin_menu_order' => 530,
'args' => array (
'name' => '3rd Above Footer Aside',
'id' => 'third-above-footer-aside',
'before_widget' => thematic_before_widget(),
'after_widget' => thematic_after_widget(),
'before_title' => thematic_before_title(),
'after_title' => thematic_after_title(),
),
'action_hook' => 'above_footer_widgets',
'function' => 'add_widgetized_areas',
'priority' => 10,
);
return $content;
}
add_filter('thematic_widgetized_areas', 'create_my_widgetized_areas');
// And this is our new function that displays the widgetized area
function add_widgetized_areas() {
if (is_sidebar_active('first-above-footer-aside')) {
echo thematic_before_widget_area('first-above-footer-aside');
dynamic_sidebar('first-above-footer-aside');
echo thematic_after_widget_area('first-above-footer-aside');
}
if (is_sidebar_active('second-above-footer-aside')) {
echo thematic_before_widget_area('second-above-footer-aside');
dynamic_sidebar('second-above-footer-aside');
echo thematic_after_widget_area('second-above-footer-aside');
}
if (is_sidebar_active('third-above-footer-aside')) {
echo thematic_before_widget_area('third-above-footer-aside');
dynamic_sidebar('third-above-footer-aside');
echo thematic_after_widget_area('third-above-footer-aside');
}
}
// Creates the Above footer Widgets Action Hook
function above_footer_widgets() {
do_action('above_footer_widgets');
} // end thematic_abovefooter
// Creates the above footer widgets container
function above_footer_widgets_container() {
// adds the container div to the widgets
if ( function_exists('dynamic_sidebar') && is_sidebar_active('first-above-footer-aside') OR is_sidebar_active('second-above-footer-aside') OR is_sidebar_active('third-above-footer-aside') ) {
//opens the container
echo '<div id="thematic-above-footer">' . "\n" . '<div id="thematic-above-footer-asides">' . "\n";
// calls the widgets
above_footer_widgets ();
//closes the container
echo '</div><!-- thematic-above-footer-asides -->' . "\n" . '</div><!-- thematic-above-footer -->' . "\n" ;
}
}
add_action('thematic_abovefooter', 'above_footer_widgets_container',5);
As for the filter thing, I'll better let Chris help you out. Tell me if this works and Chris, if you see any way to improve this code that would be welcome!!!!
best,
t.