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);