Customing Annual Archive plugin

Try this, you need to use two filters “getarchives_where” and “getarchives_join” to alter the way archive are shown and include your category 17..

function widget( $args, $instance ) {
extract($args);
    //$c = $instance['count'] ? '1' : '0';
    //$d = $instance['dropdown'] ? '1' : '0';

    $format = empty($instance['format']) ? 'html' : apply_filters('widget_type', $instance['format']);
    $type = empty($instance['type']) ? 'yearly' : apply_filters('widget_type', $instance['type']);
    $before = empty($instance['before']) ? '' : apply_filters('widget_type', $instance['before']);
    $after = empty($instance['after']) ? '' : apply_filters('widget_type', $instance['after']);
    $limit = apply_filters('widget_limit', $instance['limit']);
    $title = apply_filters('widget_title', empty($instance['title']) ? __('Annual Archive', 'anarch') : $instance['title'], $instance, $this->id_base);

    //$wpdb->query('select * from my_plugin_table where foo = "bar"');

    echo $before_widget;
    if ( $title )
        echo $before_title . $title . $after_title;

    if ($format == 'option') {
        $dtitle = __('Select Year', 'anarch');
        if ($type == 'monthly'){
            $dtitle = __('Select Month', 'anarch');
        }
        else if($type == 'weekly'){
            $dtitle = __('Select Week', 'anarch');
        }
        else if($type == 'daily'){
            $dtitle = __('Select Day', 'anarch');
        }
        else if($type == 'postbypost' || $type == 'alpha'){
            $dtitle = __('Select Post', 'anarch');
        }

add_filter( 'getarchives_where', 'customarchives_where' );
add_filter( 'getarchives_join', 'customarchives_join' );

function customarchives_join( $x ) {

    global $wpdb;

    return $x . " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)";

}

function customarchives_where( $x ) {

    global $wpdb;

    $include="17"; // category id to include
    return $x . " AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN ($include)";

}

    ?>
    <select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;"> <option value=""><?php echo esc_attr(__($dtitle, 'anarch')); ?></option> <?php wp_get_archives(apply_filters('widget_archive_dropdown_args', array('type' => $type, 'format' => 'option', 'show_post_count' => $c, 'before' => $before, 'after' => $after, 'limit' => $limit))); ?> </select>
    <?php
    } else {
    ?>
    <ul>
    <?php wp_get_archives(apply_filters('widget_archive_args', array('type' => $type, 'limit' => $limit, 'format' => $format, 'before' => $before, 'after' => $after, 'show_post_count' => $c))); ?>
    </ul>
    <?php
    }

    echo $after_widget;

remove_filter( 'getarchives_where', 'customarchives_where' );
remove_filter( 'getarchives_join', 'customarchives_join' );

}