/** * Remove a screen. * * @access public * * @param string $object_type Object type, set true to remove all screens. * @param string $id Screen ID to remove, set true to remove all screens from an object. * @param string $object_name Object name (for post types and taxonomies), set true to remove to all objects from an object type. */ public function remove_screen($object_type, $id, $object_name = null) { if (true === $object_type) { // Remove all screens self::$screens = array(); } elseif (true === $object_name) { // Remove all screens for an object type if (isset(self::$screens[$object_type])) { unset(self::$screens[$object_type]); } } else { if (empty($object_name) && !empty($object_type)) { $object_name = '_' . $object_type; // Default to _object_type for internal handling } if (true === $id && null !== $object_name) { // Remove all screens for an object type if (isset(self::$screens[$object_type][$object_name])) { unset(self::$screens[$object_type][$object_name]); } } elseif (isset(self::$screens[$object_type][$object_name][$id])) { // Remove screen from object type and name unset(self::$screens[$object_type][$object_name][$id]); } } }