Almost unbelievably in a default wordpress install there is no way to bulk remove a category from posts via the dashboard, you can add them in the bulk edit mode, but not batch remove them from posts.


Only way I have found to be able to do it is as follows..


(1) Find the ID of the category you wish to remove posts from eg in this example category Diet has an id of 28281 – found by hovering over the edit tag and noting the tag_ID bit of the urlĀ  bit ?taxonomy=category&tag_ID=28281&post_type=post&wp_http_referer=%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Dcategory



(2) Add the following code to you themes functions file replacing {category_id} with the category id (numeric) found above in part 1 eg 28281


add_action( 'init', function()
    $args = [
        'posts_per_page' => -1, 
        'cat'            => {category_id}, // Category ID for category you wish to remove posts from 
        'fields'         => 'ids', 
    $found_posts = get_posts( $args );

    if ( !$found_posts ) return;

    foreach ( $found_posts as $id )
            $id, // Post ID

3) Then load the page view to make sure the above code is triggered, then go back to dashboard and check that all posts have been removed from your selected category.

4) Finally when happy all posts have been removed from the category, re-edit your themes functions file, and remove the code you added in part 2 above.

5) Optional – delete empty category, if you wish.