Another way of doing it:
1.
Go to Content->News->Browse Category Templates
Create a new template, (I called it Test), with the following content:
Code: Select all
{if $count > 0}
{foreach from=$cats item=node}
{$node.news_category_name},
{/foreach}
{/if}
2.
Go to Extensions->User Defined Tags
Create a new UDT, (called Remove), with the following contents:
Code: Select all
$remove = explode( ',', trim( $params['remove']));
$input = explode( ',', trim( trim( $params['input']), ','));
$input = array_map( trim, $input);
echo implode( ',', array_diff( $input, $remove));
3.
In the page where you want the news insert something like this:
Code: Select all
{capture assign="all_cats"}{news action="browsecat" browsecattemplate="Test"}{/capture}
{capture assign="cats"}{Remove input=$all_cats remove="General,Major"}{/capture}
{news category=$cats}
This will show all news except from the categories General and Major.
If you always want to exclude the same category you could simplify things by removing it with smarty logic already in the browsecat template and skip the UDT.
But the UDT method is more flexible.
Edit:
Note that this method does not correctly handle sub categories.
If you need those it must be slightly modified.