I would consider the following …
Register a new sidebar:
function your_new_widget() {
register_sidebar( array(
'name' => __( 'Single View Sidebar', 'your_textdomain' ),
'id' => 'sidebar-single',
'description' => __( 'This widget area is found only on the single post view.', 'your_textdomain' ),
) );
}
add_action( 'widgets_init', 'your_new_widget' );
Create a new sidebar template:
/** New file: sidebar-single.php */
if ( is_active_sidebar( 'sidebar-single' ) ) :
dynamic_sidebar( 'sidebar-single' );
endif;
Then modify your ‘single.php’ template to call the new sidebar (above):
/** Modify single.php */
get_sidebar( 'single' );
Of course you will need to flesh out the new single view sidebar template file … and the WordPress Template Hierarchy will take care of using your new sidebar on single post views.