Change which Meta Boxes are Shown or Hidden by Default

If you want to change what meta boxes are shown and hidden by default instead of trying to walk a client through the process of customizing their own screen, you can use this code as a starting point:

add_filter( 'default_hidden_meta_boxes', 'change_default_hidden', 10, 2 );
function change_default_hidden( $hidden, $screen ) {
    if ( 'page' == $screen->id ) {
        $hidden = array_flip($hidden);
        unset($hidden['authordiv']); //show author box
        $hidden = array_flip($hidden);
        $hidden[] = 'pageparentdiv'; //hide page attributes
    return $hidden;

Remove Categories Meta Box

Sometimes, the ability to add multiple categories to a single post can cause problems. Or maybe you’re working with custom taxonomies and you need to make sure only one term is assigned to a post. Assuming you’re creating your own alternative category selection box, you can use this to get red of the default meta box.

function remove_cat_box() {
    //args: $categoryslug.'div', $posttype, $location
    remove_meta_box('categorydiv', 'post', 'side');