Pridanie parametru do scriptu

Obtiažnosť:
Začiatočník
Pokročilý
Skúsený
Expert

Pri registrácii skriptu, pomocou WordPress funkcie wp_enqueue_script(), nemáme veľa možností, ako pridať ďalšie atribúty pre skript (napríklad: type="module", async, defer…). WordPress, nám však ponúka filter. Vďaka nemu, si vieme náš skript upraviť, podľa našich potrieb.

Príklad pridania type="module" do nášho skriptu.

/**
 * pridanie type="module" pre script
 * @param $tag
 * @param $handle
 * @param $src
 * @return mixed|string
 */
function viking_add_type_attribute( $tag, $handle, $src ) {
    // Kontrola, či je to náš skript, ak nie, vráť tag, bez úpravy
    if ( 'nas-tag' !== $handle ) {
        return $tag;
    }
    return '<script type="module" src="' . esc_url( $src ) . '" id="' . $handle . '-js"></script>';
}
add_filter( 'script_loader_tag', 'viking_add_type_attribute' , 10, 3 );

Pre úpravu, použijeme filter script_loader_tag. Tento filter nám ponúka 3 parametre.

$tag – je to samotný tag <script>...</script>
$handle – meno pre skript, bude zároveň použité v ID skriptu
$src – url skriptu

Ďalší príklad, ako pridať do skriptu defer:

/**
 * pridanie "defer" pre script
 * @param $tag
 * @param $handle
 * @param $src
 * @return mixed|string
 */
function viking_defer_js( $tag, $handle, $src ) {
  	// Kontrola, či je to náš skript, ak áno, pridaj do skriptu "defer"
    if ( 'nas-tag' === $handle ) {
        $tag = str_replace( '></script>', ' defer></script>', $tag );
    }
    return $tag;
}
add_filter( 'script_loader_tag', 'viking_defer_js', 10, 3 );

V tomto prípade, použijeme php funkciu str_replace() na doplnenie defer do skriptu.

Či už použijeme jeden, alebo druhý spôsob, takto si vieme upraviť výpis skriptu, podľa našich potrieb.

0 0 votes
Hodnotenie článku
Autor
Navigácia
Odoberať
Upozorniť na
guest
0 Komentáre
Inline Feedbacks
View all comments