Come rimuovere la versione WordPress da alcuni file .css/.js

29 lug 2016, 12:18:29
Visualizzazioni: 32.4K
Voti: 7

So che posso utilizzare la seguente funzione per rimuovere la versione da tutti i file .css e .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;
}

Ma ho alcuni file, per esempio style.css, per i quali voglio aggiungere una versione nel seguente modo:

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

Ma la funzione precedente rimuove anche questa versione. Quindi la domanda è come far funzionare insieme le due cose?

0
Tutte le risposte alla domanda 3
0
10

Puoi verificare l'attuale handle prima di rimuovere la versione.

Ecco un esempio (non testato):

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' ]; // <-- Modifica secondo le tue esigenze!

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

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

Da quando questa domanda è stata scritta, molte cose sono cambiate con WordPress. Ecco un nuovo modo per impedire a WordPress di visualizzare il suo numero di versione:

// rimuove la versione dall'head
remove_action('wp_head', 'wp_generator');

// rimuove la versione dai feed rss
add_filter('the_generator', '__return_empty_string');

// rimuove la versione da script e stili
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);

Nessuna modifica necessaria. Aggiungi a functions.php e il gioco è fatto. Oppure aggiungi tramite un semplice plugin personalizzato. La scelta è tua! :)

Articolo originale

26 dic 2018 19:31:37
Commenti

questa risposta non è copiata direttamente da qui? Dovresti sempre dare credito all'autore originale, a meno che tu non abbia scritto quell'articolo

Vishwa Vishwa
13 mar 2019 12:57:43

Ho aggiunto il link all'articolo originale. Senza offesa. Volevo solo aiutare le persone a risolvere il problema. Non ho mai preso il merito per me stesso.

Amr Amr
14 mar 2019 20:19:07

Non intendevo dire che l'hai fatto, ho solo mostrato il modo corretto di farlo. tutto qui :)

Vishwa Vishwa
15 mar 2019 06:16:44

Ottimo! Purtroppo non risponde alla domanda dell'OP su come mantenerlo per un determinato CSS.

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

Per mirare a un file specifico

// rimuove la versione da script e stili
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 ago 2020 07:02:02