You can create a custom widget for that.
// Widget Class ==============================
class WPSE154979_Widget extends WP_Widget
{
function WPSE154979_Widget()
{
$widget_ops = array(
'classname' => 'WPSE154979_custom_widget',
'description' => __('Post Category Children\'s or Parent Categories')
);
$control_ops = array( 'width' => 200, 'height' => 400);
$this->WP_Widget( 'WPSE154979_custom', 'Custom Categories', $widget_ops, $control_ops );
$this->alt_option_name="WPSE154979_custom";
}
function widget( $args, $instance)
{
extract( $args);
$title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
echo $before_widget;
if( $title )
echo $before_title . $title . $after_title;
// on single post page
if( is_single() && is_object_in_taxonomy( get_post_type(), 'category' ) )
{
$cats = wp_get_object_terms(
get_the_ID(),
'category',
array( 'fields' => 'ids', 'orderby' => 'count', 'order' => 'DESC', )
);
$parent_id = array_shift( $cats );
wp_list_categories( 'title_li=&show_option_none=&hide_empty=0&parent=". $parent_id );
}
// on category page
elseif( is_category() )
{
$parent_id = (int) get_query_var("cat');
wp_list_categories( 'title_li=&show_option_none=&hide_empty=0&parent=". $parent_id );
}
// on others page
else
{
$parent_id = 0;
wp_list_categories( "title_li=&show_option_none=&hide_empty=0&parent=". $parent_id );
}
echo $after_widget;
}
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance["title'] = strip_tags( $new_instance['title']);
return $instance;
}
function form( $instance )
{
$title = isset($instance['title']) ? esc_attr($instance['title']) : ''; ?><p>
<strong><?php _e( 'Title:' ); ?></strong>
<br /><input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text"
value="<?php echo $title; ?>" />
</p><?php
}
}
// Register Widget ==============================
add_action('widgets_init', 'WPSE154979_Widget_Init');
function WPSE154979_Widget_Init(){
register_widget( 'WPSE154979_Widget' );
}
If you add the above code to you themes functions.php file, you would see a new available widget on your WP Admin -> Widgets
page. Drag and Drop it to a proper place.