¿Cómo eliminar versiones de archivo de los enlaces de origen de archivo en wp_head?

9

Observé el interior de la wp_headfunción en los enlaces de origen de cada .css, se agrega .jsun archivo ?ver=1( u otro número basado en la versión del archivo / biblioteca ). ¿Cómo puedo sobrescribirlos para eliminarlos?

Este problema creo que está causando problemas en la parte del manifiesto de la memoria caché.

Grávuj Miklós Henrich
fuente

Respuestas:

16

Se puede enganchar en style_loader_srcy script_loader_srcy ejecutar remove_query_arg( 'ver', $url )en la URL:

<?php
/* Plugin Name: Remove version parameter for scripts and styles */

add_filter( 'style_loader_src', 't5_remove_version' );
add_filter( 'script_loader_src', 't5_remove_version' );

function t5_remove_version( $url )
{
    return remove_query_arg( 'ver', $url );
}

Sin este complemento:

ingrese la descripción de la imagen aquí

Después de la activación del complemento:

ingrese la descripción de la imagen aquí

Hay un caso en el que eso fallará: cuando alguien no usó la API de script / estilo, pero agregó una cadena codificada al encabezado.

fuxia
fuente
Uso ordenado de remove_query_arg().
henrywright
2

Esto funcionó para mí cuando aún tenía que cargar una hoja de estilo de Google Fonts.

<?php
add_filter( 'script_loader_src', 'wpse130419_remove_script_version', 15, 1 );
add_filter( 'style_loader_src',  'wpse130419_remove_script_version', 15, 1 );
function wpse130419_remove_script_version( $src ) {

    $url = explode( '?', $src );

    if ( $url[0] === 'http://fonts.googleapis.com/css' ) :
        $version = explode( '&ver=', $url[1] );
        $url[1]  = $version[0];
    endif;

    return ( $url[0] === 'http://fonts.googleapis.com/css' ) 
        ? "{$url[0]}?{$url[1]}"
        : $url[0]
    ;
}
prensa de pegamento
fuente