$args) { $key = (string) $key; $args = is_array($args) ? $args : []; $type = (string) ($args['type'] ?? 'string'); $readonly = $this->readOnly || (is_protected_meta($key, 'post') && empty($args['show_in_rest'])); $fields[] = new FieldDefinition( $key, $key, in_array($type, self::TYPES, true) ? $type : 'unknown', 'meta', $readonly ? FieldDefinition::READONLY : FieldDefinition::WRITABLE, false, ! (bool) ($args['single'] ?? false), null, null, (string) ($args['description'] ?? '') ); } return $fields; } }