How to hide some categories in category list under post in wordpress?

I’m afraid that in this case you will have to go throught the categories and have some logic here.
you can use a function like this one:

function filterCategories($postId,$excluded, $separator){
    $categoriesToDisplay = '';
    $count = 0;
    $allCategories = get_the_category($postId);
    foreach($allCategories as $category) {
        if ( !in_array($category->cat_ID, $excluded) ) {

           // get that category link
           $cat_link = $get_category_link($category->cat_ID);       
           $categoriesToDisplay .= $cat_link;

           // we want a separator, but not at the end...
           if($count < count($categories)){
               $categoriesToDisplay .= $separator;
           }
        }
        $count++;
    }
        return $categoriesToDisplay;
}

It will trancate the categores you want without the excluded as links seperated by what ever you want (in this case “|”)
You can call it within your loop:

     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
     <?php $id = get_the_ID(); ?>
     <?php echo filterCategories($id, array(1,2,3,4)," | "); ?>

$categories array will be the array of categories objects what you can then display as:

I haven’t tested it, but it should work.

To get the excluded categories you can use a parent category called “excluded” or something like that. than they can be available for you easily:

$excluded = wp_list_categories("child_of=".$excludedCategoriId);

Hope it helps.