sidebars = array(
'page' => __('Shared Page Widget Area', 'wpv'),
'blog' => __('Blog Widget Area', 'wpv'),
'portfolio' => __('Portfolio Widget Area', 'wpv'),
);
$this->places = array('left', 'right');
}
public function register_sidebars() {
foreach($this->sidebars as $id=>$name) {
foreach($this->places as $place) {
register_sidebar(array(
'id' => $id.'-'.$place,
'name' => $name . " ($place)",
'description' => $name . " ($place)",
'before_widget' => '',
'before_title' => apply_filters('wpv_before_widget_title', '
', 'body'),
));
}
}
for($i=1; $i<=(int)wpv_get_option('footer-sidebars'); $i++) {
register_sidebar(array(
'id' => "footer-sidebars-$i",
'name' => "Footer widget area $i",
'description' => "Footer widget area $i",
'before_widget' => '',
'before_title' => apply_filters('wpv_before_widget_title', '', 'footer'),
));
}
for($i=1; $i<=(int)wpv_get_option('header-sidebars'); $i++) {
register_sidebar(array(
'id' => "header-sidebars-$i",
'name' => "Header widget area $i",
'description' => "Header widget area $i",
'before_widget' => '',
'before_title' => apply_filters('wpv_before_widget_title', '', 'header'),
));
}
if(wpv_get_option('enable-feedback-sidebar')) {
register_sidebar(array(
'id' => "feedback-sidebar",
'name' => "Feedback widget area",
'description' => "Slides out when the feedback button is clicked",
'before_widget' => '',
'before_title' => apply_filters('wpv_before_widget_title', '', 'feedback'),
));
}
$custom_sidebars = wpv_get_option('custom-sidebars');
$custom_sidebars = explode(',', $custom_sidebars);
foreach($custom_sidebars as $sidebar) {
$name = str_replace('wpv_sidebar-', '', $sidebar);
$sidebar = sanitize_title($sidebar);
foreach($this->places as $place) {
register_sidebar(array(
'id' => $sidebar.'-'.$place,
'name' => "$name ($place)",
'description' => "$name ($place)",
'before_widget' => '',
'before_title' => apply_filters('wpv_before_widget_title', '', 'body'),
));
}
}
}
public function get_sidebar($place = 'left'){
global $post;
if(is_page()) {
$sidebar = $this->sidebars['page'];
/*if(is_active_sidebar($post->ID.'page-'.$place))
$sidebar = $post->ID.'page';*/
}
if(is_front_page() || is_home())
$sidebar = $this->sidebars['blog'];
if(is_singular('post'))
$sidebar = $this->sidebars['blog'];
elseif(is_singular('portfolio'))
$sidebar = $this->sidebars['portfolio'];
if(is_search() || is_archive())
$sidebar = $this->sidebars['blog'];
if( get_post_meta($post->ID, 'use-global-options', true) === 'false') {
$custom_sidebar = get_post_meta($post->ID, $place.'_sidebar_type', true);
if(is_active_sidebar($custom_sidebar . '-' . $place)) {
$sidebar = $custom_sidebar;
}
}
if(isset($sidebar))
return dynamic_sidebar($sidebar.'-'.$place);
}
};
global $sidebars;
$sidebars = new wpv_sidebars;
add_action('widgets_init', array($sidebars, 'register_sidebars'));