WP_Font_Face::order_src()privateWP 6.4.0

Orders src items to optimize for browser support.

Метод класса: WP_Font_Face{}

Хуков нет.

Возвращает

Массив. Font-face with ordered src items.

Использование

// private - только в коде основоного (родительского) класса
$result = $this->order_src( $font_face );
$font_face(массив) (обязательный)
Font face to process.

Список изменений

С версии 6.4.0 Введена.

Код WP_Font_Face::order_src() WP 6.7.1

private function order_src( array $font_face ) {
	if ( ! is_array( $font_face['src'] ) ) {
		$font_face['src'] = (array) $font_face['src'];
	}

	$src         = array();
	$src_ordered = array();

	foreach ( $font_face['src'] as $url ) {
		// Add data URIs first.
		if ( str_starts_with( trim( $url ), 'data:' ) ) {
			$src_ordered[] = array(
				'url'    => $url,
				'format' => 'data',
			);
			continue;
		}
		$format         = pathinfo( $url, PATHINFO_EXTENSION );
		$src[ $format ] = $url;
	}

	// Add woff2.
	if ( ! empty( $src['woff2'] ) ) {
		$src_ordered[] = array(
			'url'    => $src['woff2'],
			'format' => 'woff2',
		);
	}

	// Add woff.
	if ( ! empty( $src['woff'] ) ) {
		$src_ordered[] = array(
			'url'    => $src['woff'],
			'format' => 'woff',
		);
	}

	// Add ttf.
	if ( ! empty( $src['ttf'] ) ) {
		$src_ordered[] = array(
			'url'    => $src['ttf'],
			'format' => 'truetype',
		);
	}

	// Add eot.
	if ( ! empty( $src['eot'] ) ) {
		$src_ordered[] = array(
			'url'    => $src['eot'],
			'format' => 'embedded-opentype',
		);
	}

	// Add otf.
	if ( ! empty( $src['otf'] ) ) {
		$src_ordered[] = array(
			'url'    => $src['otf'],
			'format' => 'opentype',
		);
	}
	$font_face['src'] = $src_ordered;

	return $font_face;
}