Cum să elimini versiunea WordPress din anumite fișiere .css/.js

29 iul. 2016, 12:18:29
Vizualizări: 32.4K
Voturi: 7

Știu că pot folosi următoarea funcție pentru a elimina versiunea din toate fișierele .css și .js:

add_filter( 'style_loader_src', 'sdt_remove_ver_css_js', 9999 );
add_filter( 'script_loader_src', 'sdt_remove_ver_css_js', 9999 );
function sdt_remove_ver_css_js( $src ) {
    if ( strpos( $src, 'ver=' ) )
        $src = remove_query_arg( 'ver', $src );
    return $src;
}

Dar am câteva fișiere, de exemplu style.css, în cazul cărora vreau să adaug o versiune în următorul mod:

function css_versioning() {
    wp_enqueue_style( 'style',
        get_stylesheet_directory_uri() . '/style.css' ,
        false,
        filemtime( get_stylesheet_directory() . '/style.css' ),
        'all' );
}

Dar funcția anterioară elimină și această versiune. Așadar, întrebarea este cum să le fac pe cele două să funcționeze împreună?

0
Toate răspunsurile la întrebare 3
0
10

Puteți verifica handle-ul curent înainte de a elimina versiunea.

Iată un exemplu (netestat):

add_filter( 'style_loader_src',  'sdt_remove_ver_css_js', 9999, 2 );
add_filter( 'script_loader_src', 'sdt_remove_ver_css_js', 9999, 2 );

function sdt_remove_ver_css_js( $src, $handle ) 
{
    $handles_with_version = [ 'style' ]; // <-- Ajustați în funcție de nevoile dumneavoastră!

    if ( strpos( $src, 'ver=' ) && ! in_array( $handle, $handles_with_version, true ) )
        $src = remove_query_arg( 'ver', $src );

    return $src;
}
29 iul. 2016 12:48:22
4

De când a fost scrisă această întrebare, multe lucruri s-au schimbat în WordPress. Iată o nouă metodă de a preveni WordPress să afișeze numărul versiunii sale:

// elimină versiunea din head
remove_action('wp_head', 'wp_generator');

// elimină versiunea din rss
add_filter('the_generator', '__return_empty_string');

// elimină versiunea din scripturi și stiluri
function remove_version_scripts_styles($src) {
    if (strpos($src, 'ver=')) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('style_loader_src', 'remove_version_scripts_styles', 9999);
add_filter('script_loader_src', 'remove_version_scripts_styles', 9999);

Nu este necesară nicio editare. Adăugați în fișierul functions.php și gata. Sau puteți adăuga printr-un plugin personalizat simplu. Alegerea este a dumneavoastră! :)

Articol original

26 dec. 2018 19:31:37
Comentarii

acest răspuns nu este copiat direct de aici? Ar trebui să dai întotdeauna credit autorului original, cu excepția cazului în care ai scris tu acel articol

Vishwa Vishwa
13 mar. 2019 12:57:43

Am adăugat linkul către articolul original. Fără supărare. Voiam doar să ajut oamenii să rezolve problema. Nu am pretins niciodată că articolul este scris de mine.

Amr Amr
14 mar. 2019 20:19:07

Nu am sugerat că ai făcut asta, doar am arătat cum se face corect. atât :)

Vishwa Vishwa
15 mar. 2019 06:16:44

Super! Din păcate, nu răspunde la întrebarea OP despre cum să păstrezi acest lucru pentru un anumit CSS.

norman.lol norman.lol
28 mai 2019 23:34:24
0

Pentru a ținti un fișier specific

// elimină versiunea din scripturi și stiluri
function remove_version_scripts_styles($src) {
    if (strpos($src, 'yourfile.js')) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('script_loader_src', 'remove_version_scripts_styles', 9999);
17 aug. 2020 07:02:02