Cómo eliminar la versión de WordPress de algunos archivos .css/.js

29 jul 2016, 12:18:29
Vistas: 32.4K
Votos: 7

Sé que puedo usar la siguiente función para eliminar la versión de todos los archivos .css y .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;
}

Pero tengo algunos archivos, por ejemplo style.css, en los que quiero agregar una versión de la siguiente manera:

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

Pero la función anterior también elimina esta versión. Entonces, ¿cómo hacer que las dos funcionen juntas?

0
Todas las respuestas a la pregunta 3
0
10

Puedes verificar el handle actual antes de eliminar la versión.

Aquí tienes un ejemplo (no probado):

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 según tus necesidades!

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

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

Desde que se escribió esta pregunta, mucho ha cambiado con WordPress. Aquí hay una nueva forma de evitar que WordPress muestre su número de versión:

// eliminar versión del head
remove_action('wp_head', 'wp_generator');

// eliminar versión del feed RSS
add_filter('the_generator', '__return_empty_string');

// eliminar versión de scripts y estilos
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);

No se requiere edición. Añade a functions.php y listo. O agrega mediante un plugin personalizado simple. ¡La elección es tuya! :)

Artículo original

26 dic 2018 19:31:37
Comentarios

¿No es esta respuesta copiada directamente de aquí? Siempre deberías dar crédito al autor original, a menos que hayas escrito ese artículo

Vishwa Vishwa
13 mar 2019 12:57:43

Agregué el enlace al artículo original. Sin ofender. Solo quería ayudar a la gente a resolver el problema. Nunca me atribuí el crédito.

Amr Amr
14 mar 2019 20:19:07

No insinué que lo hiciste, solo mostré la forma correcta de hacerlo. eso es todo :)

Vishwa Vishwa
15 mar 2019 06:16:44

¡Bien! Lamentablemente no responde la pregunta del OP sobre cómo mantenerlo para un CSS específico.

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

Para apuntar a un archivo específico

// remover versión de scripts y estilos
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