wp_normalize_site_data

The timeline below displays how wordpress function wp_normalize_site_data has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.1

/**
 * Normalizes data for a site prior to inserting or updating in the database.
 *
 * @since 5.1.0
 *
 * @param array $data Associative array of site data passed to the respective function.
 *                    See {@see wp_insert_site()} for the possibly included data.
 * @return array Normalized site data.
 */
function wp_normalize_site_data($data)
{
    // Sanitize domain if passed.
    if (array_key_exists('domain', $data)) {
        $data['domain'] = trim($data['domain']);
        $data['domain'] = preg_replace('/\s+/', '', sanitize_user($data['domain'], true));
        if (is_subdomain_install()) {
            $data['domain'] = str_replace('@', '', $data['domain']);
        }
    }
    // Sanitize path if passed.
    if (array_key_exists('path', $data)) {
        $data['path'] = trailingslashit('/' . trim($data['path'], '/'));
    }
    // Sanitize network ID if passed.
    if (array_key_exists('network_id', $data)) {
        $data['network_id'] = (int) $data['network_id'];
    }
    // Sanitize status fields if passed.
    $status_fields = array('public', 'archived', 'mature', 'spam', 'deleted');
    foreach ($status_fields as $status_field) {
        if (array_key_exists($status_field, $data)) {
            $data[$status_field] = (int) $data[$status_field];
        }
    }
    // Strip date fields if empty.
    $date_fields = array('registered', 'last_updated');
    foreach ($date_fields as $date_field) {
        if (!array_key_exists($date_field, $data)) {
            continue;
        }
        if (empty($data[$date_field]) || '0000-00-00 00:00:00' === $data[$date_field]) {
            unset($data[$date_field]);
        }
    }
    return $data;
}