Comment supprimer des versions de fichier des liens de source de fichier dans wp_head?

9

J'ai observé l'intérieur de la fonction wp_head dans les liens source de chaque fichier .css , .js , un ?ver=1 ( ou un autre nombre basé sur la version / library du fichier ) ajoutée. Comment puis-je les écraser pour les supprimer?

Je pense que ce problème est à l'origine de problèmes au niveau du manifeste de cache.

    
posée Grávuj Miklós Henrich 18.04.2013 - 17:07

2 réponses

16

Vous pouvez accrocher style_loader_src et script_loader_src et exécuter remove_query_arg( 'ver', $url ) sur l'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 );
}

Sans ce plugin:

Aprèsl'activationduplug-in:

Il y a un cas où cela va échouer: quand quelqu'un n'utilisait pas l'API script / style, mais ajoutait une chaîne codée en dur à l'en-tête.

    
réponse donnée fuxia 18.04.2013 - 17:23
2

Cela a fonctionné pour moi alors que je devais encore charger une feuille de style à partir 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]
    ;
}
    
réponse donnée glueckpress 19.04.2013 - 18:49

Lire d'autres questions sur les étiquettes