Нет необходимости проверять, существует ли function_exists. Он существует с версии 2.1 WordPress.
Ваша проблема с отображением связана с тем, что боковая панель блога не зарегистрирована должным образом.
add_action( 'widgets_init', 'add_blog_sidebar' );
function add_blog_sidebar() {
register_sidebar(array(
'name' => 'Blog Sidebar',
'id' => 'blog',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
));
}
Виджет before и аргументы before title необходимы для стилизации.
Вызов вашей динамической боковой панели:
if ( is_category('1') dynamic_sidebar( 'blog' );
else dynamic_sidebar( 'sidebar');
Чтобы узнать все, что нужно знать о боковых панелях, посмотрите Учебник Джастина Тэдлока по боковой панели.