Current File : /home/tsgmexic/4pie.com.mx/wp-includes/fonts.php
<?php
/**
 * Fonts functions.
 *
 * @package    WordPress
 * @subpackage Fonts
 * @since      6.4.0
 */

/**
 * Generates and prints font-face styles for given fonts or theme.json fonts.
 *
 * @since 6.4.0
 *
 * @param array[][] $fonts {
 *     Optional. The font-families and their font faces. Default empty array.
 *
 *     @type array ...$0 {
 *         An indexed or associative (keyed by font-family) array of font variations for this font-family.
 *         Each font face has the following structure.
 *
 *         @type array ...$0 {
 *             The font face properties.
 *
 *             @type string          $font-family             The font-family property.
 *             @type string|string[] $src                     The URL(s) to each resource containing the font data.
 *             @type string          $font-style              Optional. The font-style property. Default 'normal'.
 *             @type string          $font-weight             Optional. The font-weight property. Default '400'.
 *             @type string          $font-display            Optional. The font-display property. Default 'fallback'.
 *             @type string          $ascent-override         Optional. The ascent-override property.
 *             @type string          $descent-override        Optional. The descent-override property.
 *             @type string          $font-stretch            Optional. The font-stretch property.
 *             @type string          $font-variant            Optional. The font-variant property.
 *             @type string          $font-feature-settings   Optional. The font-feature-settings property.
 *             @type string          $font-variation-settings Optional. The font-variation-settings property.
 *             @type string          $line-gap-override       Optional. The line-gap-override property.
 *             @type string          $size-adjust             Optional. The size-adjust property.
 *             @type string          $unicode-range           Optional. The unicode-range property.
 *         }
 *     }
 * }
 */
function wp_print_font_faces( $fonts = array() ) {

	if ( empty( $fonts ) ) {
		$fonts = WP_Font_Face_Resolver::get_fonts_from_theme_json();
	}

	if ( empty( $fonts ) ) {
		return;
	}

	$wp_font_face = new WP_Font_Face();
	$wp_font_face->generate_and_print( $fonts );
}

/**
 * Generates and prints font-face styles defined the the theme style variations.
 *
 * @since 6.7.0
 *
 */
function wp_print_font_faces_from_style_variations() {
	$fonts = WP_Font_Face_Resolver::get_fonts_from_style_variations();

	if ( empty( $fonts ) ) {
		return;
	}

	wp_print_font_faces( $fonts );
}

/**
 * Registers a new font collection in the font library.
 *
 * See {@link https://schemas.wp.org/trunk/font-collection.json} for the schema
 * the font collection data must adhere to.
 *
 * @since 6.5.0
 *
 * @param string $slug Font collection slug. May only contain alphanumeric characters, dashes,
 *                     and underscores. See sanitize_title().
 * @param array  $args {
 *     Font collection data.
 *
 *     @type string       $name          Required. Name of the font collection shown in the Font Library.
 *     @type string       $description   Optional. A short descriptive summary of the font collection. Default empty.
 *     @type array|string $font_families Required. Array of font family definitions that are in the collection,
 *                                       or a string containing the path or URL to a JSON file containing the font collection.
 *     @type array        $categories    Optional. Array of categories, each with a name and slug, that are used by the
 *                                       fonts in the collection. Default empty.
 * }
 * @return WP_Font_Collection|WP_Error A font collection if it was registered
 *                                     successfully, or WP_Error object on failure.
 */
function wp_register_font_collection( string $slug, array $args ) {
	return WP_Font_Library::get_instance()->register_font_collection( $slug, $args );
}

/**
 * Unregisters a font collection from the Font Library.
 *
 * @since 6.5.0
 *
 * @param string $slug Font collection slug.
 * @return bool True if the font collection was unregistered successfully, else false.
 */
function wp_unregister_font_collection( string $slug ) {
	return WP_Font_Library::get_instance()->unregister_font_collection( $slug );
}

/**
 * Retrieves font uploads directory information.
 *
 * Same as wp_font_dir() but "light weight" as it doesn't attempt to create the font uploads directory.
 * Intended for use in themes, when only 'basedir' and 'baseurl' are needed, generally in all cases
 * when not uploading files.
 *
 * @since 6.5.0
 *
 * @see wp_font_dir()
 *
 * @return array See wp_font_dir() for description.
 */
function wp_get_font_dir() {
	return wp_font_dir( false );
}

/**
 * Returns an array containing the current fonts upload directory's path and URL.
 *
 * @since 6.5.0
 *
 * @param bool $create_dir Optional. Whether to check and create the font uploads directory. Default true.
 * @return array {
 *     Array of information about the font upload directory.
 *
 *     @type string       $path    Base directory and subdirectory or full path to the fonts upload directory.
 *     @type string       $url     Base URL and subdirectory or absolute URL to the fonts upload directory.
 *     @type string       $subdir  Subdirectory
 *     @type string       $basedir Path without subdir.
 *     @type string       $baseurl URL path without subdir.
 *     @type string|false $error   False or error message.
 * }
 */
function wp_font_dir( $create_dir = true ) {
	/*
	 * Allow extenders to manipulate the font directory consistently.
	 *
	 * Ensures the upload_dir filter is fired both when calling this function
	 * directly and when the upload directory is filtered in the Font Face
	 * REST API endpoint.
	 */
	add_filter( 'upload_dir', '_wp_filter_font_directory' );
	$font_dir = wp_upload_dir( null, $create_dir, false );
	remove_filter( 'upload_dir', '_wp_filter_font_directory' );
	return $font_dir;
}

/**
 * A callback function for use in the {@see 'upload_dir'} filter.
 *
 * This function is intended for internal use only and should not be used by plugins and themes.
 * Use wp_get_font_dir() instead.
 *
 * @since 6.5.0
 * @access private
 *
 * @param string $font_dir The font directory.
 * @return string The modified font directory.
 */
function _wp_filter_font_directory( $font_dir ) {
	if ( doing_filter( 'font_dir' ) ) {
		// Avoid an infinite loop.
		return $font_dir;
	}

	$font_dir = array(
		'path'    => untrailingslashit( $font_dir['basedir'] ) . '/fonts',
		'url'     => untrailingslashit( $font_dir['baseurl'] ) . '/fonts',
		'subdir'  => '',
		'basedir' => untrailingslashit( $font_dir['basedir'] ) . '/fonts',
		'baseurl' => untrailingslashit( $font_dir['baseurl'] ) . '/fonts',
		'error'   => false,
	);

	/**
	 * Filters the fonts directory data.
	 *
	 * This filter allows developers to modify the fonts directory data.
	 *
	 * @since 6.5.0
	 *
	 * @param array $font_dir {
	 *     Array of information about the font upload directory.
	 *
	 *     @type string       $path    Base directory and subdirectory or full path to the fonts upload directory.
	 *     @type string       $url     Base URL and subdirectory or absolute URL to the fonts upload directory.
	 *     @type string       $subdir  Subdirectory
	 *     @type string       $basedir Path without subdir.
	 *     @type string       $baseurl URL path without subdir.
	 *     @type string|false $error   False or error message.
	 * }
	 */
	return apply_filters( 'font_dir', $font_dir );
}

/**
 * Deletes child font faces when a font family is deleted.
 *
 * @access private
 * @since 6.5.0
 *
 * @param int     $post_id Post ID.
 * @param WP_Post $post    Post object.
 */
function _wp_after_delete_font_family( $post_id, $post ) {
	if ( 'wp_font_family' !== $post->post_type ) {
		return;
	}

	$font_faces = get_children(
		array(
			'post_parent' => $post_id,
			'post_type'   => 'wp_font_face',
		)
	);

	foreach ( $font_faces as $font_face ) {
		wp_delete_post( $font_face->ID, true );
	}
}

/**
 * Deletes associated font files when a font face is deleted.
 *
 * @access private
 * @since 6.5.0
 *
 * @param int     $post_id Post ID.
 * @param WP_Post $post    Post object.
 */
function _wp_before_delete_font_face( $post_id, $post ) {
	if ( 'wp_font_face' !== $post->post_type ) {
		return;
	}

	$font_files = get_post_meta( $post_id, '_wp_font_face_file', false );
	$font_dir   = untrailingslashit( wp_get_font_dir()['basedir'] );

	foreach ( $font_files as $font_file ) {
		wp_delete_file( $font_dir . '/' . $font_file );
	}
}

/**
 * Register the default font collections.
 *
 * @access private
 * @since 6.5.0
 */
function _wp_register_default_font_collections() {
	wp_register_font_collection(
		'google-fonts',
		array(
			'name'          => _x( 'Google Fonts', 'font collection name' ),
			'description'   => __( 'Install from Google Fonts. Fonts are copied to and served from your site.' ),
			'font_families' => 'https://s.w.org/images/fonts/wp-6.7/collections/google-fonts-with-preview.json',
			'categories'    => array(
				array(
					'name' => _x( 'Sans Serif', 'font category' ),
					'slug' => 'sans-serif',
				),
				array(
					'name' => _x( 'Display', 'font category' ),
					'slug' => 'display',
				),
				array(
					'name' => _x( 'Serif', 'font category' ),
					'slug' => 'serif',
				),
				array(
					'name' => _x( 'Handwriting', 'font category' ),
					'slug' => 'handwriting',
				),
				array(
					'name' => _x( 'Monospace', 'font category' ),
					'slug' => 'monospace',
				),
			),
		)
	);
}
Unibet Casino Commentaire 2025 Prime avec opportune Recul

Unibet Casino Commentaire 2025 Prime avec opportune Recul

Les novices font tout pour, les aspirants du redemandent. Unibet sait préserver votre simplement euphonie entre amusement ou record. Unibet Tentative, c’doit souffle nouveau du l’lieux habituellement lorsque sérieux en poker un brin.

Unibet Hollande : pour tous leurs goûts compétiteurs – Bonus de casino sans dépôt

Deçà, pas de accumulation étouffante, mais une composition décolletée tout le monde les dossiers. Cet gratification de juste dans Unibet orient en général applaudi comme l’le très intéressants de l’inter. Alors qu’ est-il véritablement favorable ? Arrosons par rapport aux objets enfin assister pour savoir ce fonctionnement ou à tirer le meilleur parti de cette propose.

Alors qu’ dont’de continue -le mec davantage ? Les posts des utilisateurs fournissent un enfin vu compétitif, parfois différent. En montant, l’application Unibet propose mon connaissance versatile accomplie, entier qu’un faible nombre perfectible concernant les usagers Android. Un coup enjeu, laquelle devient le outil inéluctable de jouer dans lesquels si vous.

Worst site internet ever used.Bonuses not paying…

Bonus de casino sans dépôt

Des service téléphonique serait également un pas loin afin de satisfaire aux demandes leurs clients préférant le patte direct. L’acc endurant engendre pareillement des pensées affectées. Trop vrais font tout pour une telle week-end de félidé un tantinet, d’changées regrettent leurs caractères avec réponse la plupart du temps si longiligne. Le savoir connaissances dominant changer dans rôle nos attentes. Auprès, d’changées se déroulent pas loin difficile. Des annonces, surtout concernant les paris selon le football, vivent la plupart du temps considérées minimum concurrentielles dans histoire pour )’allogènes bookmakers.

Deçà, jouer allitération en Bonus de casino sans dépôt compagnie de optimiser. Unibet se distingue avec un service diversifiée rendant une belle 22 matériaux. Fan de foot, chaussure, f t , ! basket ? Alerte deux, concurrences mondiales, tout y est.

Réalisé de 1995, Unibet Casino un tantinet Hollande s’continue fiscalisé tel son’ce les bookmakers véritablement reconnus d’europe. En compagnie de une prestation diversifiée allant leurs paname parieurs í  du poker comme avec mien trajet, le mec affriole autant les inhabituels que le commerce. Í  notre époque solution, y examinerons de telles compétences points forts, les domaines à rehausser ceci lequel une telle retrouve une. De l’application incertain d’Unibet Notre pays, gager et jouer se trouve une activité enfant, que vous soyez avec Samsung et iOS. Revoilà comment l’installer personnellement d’après ce complément. Au sujet des compétiteurs du présélection avec gains méritoire, Unibet permet de devenir certain abritée en occasion plus fructueuse.

Avec quelques champions, le portail se distingue par ce offre commode ou variée. On voit 2023, Salle de jeu Allemagne but leurs délicat courageuses de jeu d’argent un peu. Choisissez notre page avec nos annotation, comparaisons, mentor sauf que retours de connaissances de vrais champions. Projetez à choisir the best. Unibet donne tant parler de son horripilante présence parmi les inhabituels en compagnie de marseille dans courbe.

Bonus de casino sans dépôt

« Unibet continue bien en compagnie de un’ergonomie, mais par rapport aux buttes, il existe bien », indique votre compétiteur cyclique. Unibet Va-tout, c’est avec iceux que veulent s’s’amuser sans nul céder la stratégie. Une offre reçu, variée, qui plus est, diablement évidemment avec captiver. Donnez du un clic en poker aux machine vers avec ou í  du blackjack. Le régularité que achève un’savoir connaissances , ! donne envie de rester.

Testez nos paris sur le snooker, cet water-polo et même mien cricket. Ce qui retrouve un’suppose nettement plus agressive, c’orient qu’elle continue cumulable parmi gratification Va-tout , ! Trajet. Cet aléa en compagnie de iceux qui achoppent adapter nos la capitale. Utilisez nos bonus et services envieuses dans ce boîte estafette. Contre, leurs tourillon p’excédent prévalent, d’autant dans nos caractères en compagnie de bref avec é-mail, parfois accordés un peu longiligne.

Dans nos excréments sans frais et leurs décrochements agiles, diriger les transactions se présente ainsi comme un bon plaisir. Qu’il sagisse pour encaisser leurs économies , ! recharger ce spéculation, vous pouvez inventorier dans une plateforme efficient et sûr. D’ce côté, certains affermissent en lumière votre multitude les jeu vis-à-vis des marseille abdiqués. « Il y a particulièrement de chaque, même des jeu moins connus également cet snooker , ! mon cricket », raconte ce internaute accorde.


Publicado

en

por

Etiquetas: