wp_validate_site_data

函数
wp_validate_site_data ( $errors, $data, $old_site = null )
参数
  • (WP_Error) $errors Error object, passed by reference. Will contain validation errors if any occurred.
    Required:
  • (array) $data Associative array of complete site data. See {@see} for the included data.
    Required:
  • (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.
    Required:
    Default: null
定义位置
相关方法
wp_normalize_site_datawp_validate_redirectwp_prepare_site_datawp_validate_boolean_wp_translate_postdata
引入
5.1.0
弃用
-

wp_validate_site_data是一个WordPress的函数,用于验证一个新网站的数据: 这个函数与WordPress的多站点功能一起使用,在新站点创建之前验证它的数据: 该函数将新站点的数据作为其输入,并返回验证的数据。

在数据库中插入或更新之前,验证一个站点的数据。

function wp_validate_site_data( $errors, $data, $old_site = null ) {
	// A domain must always be present.
	if ( empty( $data['domain'] ) ) {
		$errors->add( 'site_empty_domain', __( 'Site domain must not be empty.' ) );
	}

	// A path must always be present.
	if ( empty( $data['path'] ) ) {
		$errors->add( 'site_empty_path', __( 'Site path must not be empty.' ) );
	}

	// A network ID must always be present.
	if ( empty( $data['network_id'] ) ) {
		$errors->add( 'site_empty_network_id', __( 'Site network ID must be provided.' ) );
	}

	// Both registration and last updated dates must always be present and valid.
	$date_fields = array( 'registered', 'last_updated' );
	foreach ( $date_fields as $date_field ) {
		if ( empty( $data[ $date_field ] ) ) {
			$errors->add( 'site_empty_' . $date_field, __( 'Both registration and last updated dates must be provided.' ) );
			break;
		}

		// Allow '0000-00-00 00:00:00', although it be stripped out at this point.
		if ( '0000-00-00 00:00:00' !== $data[ $date_field ] ) {
			$month      = substr( $data[ $date_field ], 5, 2 );
			$day        = substr( $data[ $date_field ], 8, 2 );
			$year       = substr( $data[ $date_field ], 0, 4 );
			$valid_date = wp_checkdate( $month, $day, $year, $data[ $date_field ] );
			if ( ! $valid_date ) {
				$errors->add( 'site_invalid_' . $date_field, __( 'Both registration and last updated dates must be valid dates.' ) );
				break;
			}
		}
	}

	if ( ! empty( $errors->errors ) ) {
		return;
	}

	// If a new site, or domain/path/network ID have changed, ensure uniqueness.
	if ( ! $old_site
		|| $data['domain'] !== $old_site->domain
		|| $data['path'] !== $old_site->path
		|| $data['network_id'] !== $old_site->network_id
	) {
		if ( domain_exists( $data['domain'], $data['path'], $data['network_id'] ) ) {
			$errors->add( 'site_taken', __( 'Sorry, that site already exists!' ) );
		}
	}
}

常见问题

FAQs
查看更多 >