ウィジェットから特定のカテゴリを除外する

BASIC認証をかけたのに、サイドメニューの最近の投稿ウィジェットやカテゴリウィジェットで存在が見えるのはどうよ問題が発生したので、ちょっと対処。
面倒くさかったので、わりと力業だけど、表示されなければ良いと割り切った。

functions.phpに追記。

// ウィジェットのカテゴリから特定のカテゴリ(ID:1)を除外する
function my_widget_categories( $args ){
    $exclude = '1';          // Exclude Category ID
	if(is_category('1') || in_category('1')){
		$args['include'] = $exclude;
	} else {
	    $args['exclude'] = $exclude;
	}
    return $args;
}
add_filter( 'widget_categories_args', 'my_widget_categories');


//ウィジェットの最近の投稿から特定のカテゴリ(ID:1)を除外する
function my_widget_posts_args( $args ) {
	if(is_category('1') || in_category('1')) {
		$args['cat'] = '1';
	} else {
		$args['cat'] = '-1';
	}
	return $args;
}
add_filter( 'widget_posts_args', 'my_widget_posts_args' );

カテゴリのほうはまだ変数処理する余裕があるけど、最近のほうはもはやIDを直にぶちこむ始末。