wp_prepare_site_data() WordPress Function
The wp_prepare_site_data() function is used to prepare data for a site object for use in the WordPress REST API. This function sanitizes the data and ensures that all required fields are present.
wp_prepare_site_data( array $data, array $defaults, WP_Site|null $old_site = null ) #
Prepares site data for insertion or update in the database.
Parameters
- $data
(array)(Required)Associative array of site data passed to the respective function. See wp_insert_site() for the possibly included data.
- $defaults
(array)(Required)Site data defaults to parse $data against.
- $old_site
(WP_Site|null)(Optional) Old site object if an update, or null if an insertion.
Default value: null
Return
(array|WP_Error) Site data ready for a database transaction, or WP_Error in case a validation error occurred.
Source
File: wp-includes/ms-site.php
function wp_prepare_site_data( $data, $defaults, $old_site = null ) { // Maintain backward-compatibility with `$site_id` as network ID. if ( isset( $data['site_id'] ) ) { if ( ! empty( $data['site_id'] ) && empty( $data['network_id'] ) ) { $data['network_id'] = $data['site_id']; } unset( $data['site_id'] ); } /** * Filters passed site data in order to normalize it. * * @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. */ $data = apply_filters( 'wp_normalize_site_data', $data ); $allowed_data_fields = array( 'domain', 'path', 'network_id', 'registered', 'last_updated', 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id' ); $data = array_intersect_key( wp_parse_args( $data, $defaults ), array_flip( $allowed_data_fields ) ); $errors = new WP_Error(); /** * Fires when data should be validated for a site prior to inserting or updating in the database. * * Plugins should amend the `$errors` object via its `WP_Error::add()` method. * * @since 5.1.0 * * @param WP_Error $errors Error object to add validation errors to. * @param array $data Associative array of complete site data. See {@see wp_insert_site()} * for the included data. * @param WP_Site|null $old_site The old site object if the data belongs to a site being updated, * or null if it is a new site being inserted. */ do_action( 'wp_validate_site_data', $errors, $data, $old_site ); if ( ! empty( $errors->errors ) ) { return $errors; } // Prepare for database. $data['site_id'] = $data['network_id']; unset( $data['network_id'] ); return $data; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.1.0 | Introduced. |