Wie entferne ich Dateiversionen aus den Dateiquellenlinks in wp_head?

9

Ich beobachtete die innerhalb der wp_headFunktion in dem Quell Links jedem .css, .jsDateien eine ?ver=1( oder eine andere Nummer , basierend auf der Datei / Library - Version ) hinzugefügt. Wie kann ich sie überschreiben, um sie zu entfernen?

Ich denke, dieses Problem verursacht Probleme im Cache-Manifest-Teil.

Grávuj Miklós Henrich
quelle

Antworten:

16

Sie können in Haken style_loader_srcund script_loader_srcund laufen remove_query_arg( 'ver', $url )auf der 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 );
}

Ohne dieses Plugin:

Geben Sie hier die Bildbeschreibung ein

Nach der Plugin-Aktivierung:

Geben Sie hier die Bildbeschreibung ein

Es gibt einen Fall, in dem dies fehlschlägt: Wenn jemand die Skript- / Stil-API nicht verwendet, sondern dem Header eine fest codierte Zeichenfolge hinzugefügt hat.

Fuxia
quelle
Ordentlicher Gebrauch von remove_query_arg().
Henrywright
2

Dies funktionierte für mich, als ich noch ein Stylesheet aus Google Fonts laden musste.

<?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]
    ;
}
Klebepresse
quelle