Come rimuovere le versioni dei file dai collegamenti di origine dei file in wp_head?


9

Ho osservato l'interno della wp_headfunzione nei collegamenti di origine di ogni .css, viene aggiunto .jsun file ?ver=1( o altro numero basato sulla versione del file / libreria ). Come posso sovrascriverli per rimuoverli?

Questo problema penso stia causando problemi sulla parte manifest della cache.

Risposte:


16

È possibile collegare in style_loader_srce script_loader_srced eseguire remove_query_arg( 'ver', $url )sul 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 );
}

Senza questo plugin:

inserisci qui la descrizione dell'immagine

Dopo l'attivazione del plugin:

inserisci qui la descrizione dell'immagine

C'è un caso in cui ciò fallirà: quando qualcuno non ha usato l'API script / style, ma ha aggiunto una stringa codificata all'intestazione.


Uso pulito di remove_query_arg().
henrywright,

2

Questo ha funzionato per me quando dovevo ancora caricare un foglio di stile da 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]
    ;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.