WordPress JS Fájlok Betöltése Async és Defer Attribútumokkal

Ezzel a kóddal az async és defer attribútumokat lehet hozzáadni a WP által behívott JS fájlokhoz tartozó <script> tag-ekhez. A kód megnézi, hogy az src attribútumban, ami a JS fájl URL-jét tartalmazza, szerepel-e valamelyik megadott kulcsszó.

Az $async tömbbe írjuk azokat a kulcsszavakat, amikhez az async attribútumot akarjuk megadni, a $defer-be pedig értelemszerűen azokat, amelyekhez a defer-t akarjuk hozzáadni.

Az attribútumok előnyeiről, használatáról itt található több információ: Async és defer attribútum hozzáadása a scriptekhez

function ph_recaptcha_script_loader_async_defer( $tag, $handle, $src ) {
	$async = array(
		'recaptcha',
		'adsense',
	);

	$defer = array(
		'facebook',
	);

	if ( ! ph_tag_has_attribute( $tag, 'async' ) ) {
		foreach ( $async as $partial ) {
			if ( strpos( $src, $partial ) !== false ) {
				$tag = str_replace( '<script ', '<script async ', $tag );
			}
		}
	}

	if ( ! ph_tag_has_attribute( $tag, 'defer' ) ) {
		foreach ( $defer as $partial ) {
			if ( strpos( $src, $partial ) !== false ) {
				$tag = str_replace( '<script ', '<script defer ', $tag );
			}
		}
	}

	return $tag;
}

function ph_tag_has_attribute( $tag, $attr ) {
	return strpos( $tag, " $attr " ) !== false || strpos( $tag, " $attr>" ) !== false || strpos( $tag, " $attr=" ) !== false;
}

add_filter('script_loader_tag', 'ph_recaptcha_script_loader_async_defer', 15, 3);
Ide másold a kódot:

Hozzászólások

Az email cím nem lesz nyilvános. A kötelező mezőket * karakterrel jelöltük.