Rimuovere? Ver = da wp_register_script


8

Sto ottenendo fastidi sul test di velocità di Google per quanto riguarda le stringhe di query nei miei script. Quindi, sto provando a rimuoverli passando false come argomento per quel parametro. Tuttavia, non sembra avere effetto:

wp_register_script('myscript', get_bloginfo('template_directory').'/scripts.myversionnumber.js',false,false,true);
wp_enqueue_script('myscript');

PS: la parte "myversionnumber" del nome file js è il mio mezzo per controllare la cache / versioning piuttosto che l'approccio? Ver = che apparentemente fa scattare alcuni server proxy (secondo il test di Google sulla velocità della pagina):

Rimuovere le stringhe di query dalle risorse statiche L' attivazione della memorizzazione nella cache pubblica nelle intestazioni HTTP per le risorse statiche consente al browser di scaricare risorse da un server proxy vicino anziché da un server di origine remoto. Per saperne di più

Suggerimenti per questa pagina

Risorse con un "?" nell'URL non sono memorizzati nella cache da alcuni server di cache proxy. Rimuovere la stringa di query e codificare i parametri nell'URL per le seguenti risorse:


Domanda interessante, non ho mai saputo che le stringhe di query aumenterebbero la velocità della pagina. Anche se non ho una soluzione, lasciami un commento sull'impostazione del parametro su "false": Afaik, o inserisci un numero di versione o il valore predefinito è la versione attuale di wordpress.
Johannes Pille,

Ho pensato che lo script sarebbe stato memorizzato nella cache, anche con un numero di versione - e che l'alterazione del numero di versione avrebbe 'spezzato' la cache, intenzionalmente in modo che il nuovo script, piuttosto che vecchio, sarebbe stato caricato ....
Stephen Harris

@Stephen, questa è esattamente l'idea. Tuttavia, a quanto pare alcuni server di cache proxy non memorizzano nella cache URL di risorse con parametri di query. Ecco perché scelgo invece di codificare i parametri nel nome file. Stesso effetto, meno bagaglio.
Scott B,

Ciao Scott B. Sto affrontando lo stesso problema. Dopo aver eseguito un test su gtmetrix ricevo errori per la query. La soluzione fornita da @SickHippie ha funzionato per te? È sicuro usarlo?
kat_indo,

Risposte:


9

Penso che devi passare NULL come quarto parametro.

wp_register_script(
    'myscript',
    get_bloginfo('template_directory').'/scripts.myversionnumber.js',
    false,
    NULL,
    true);
wp_enqueue_script('myscript');

3

È possibile passare nullcome valore di versione a wp_register_scripto wp_enqueue_scripte dovrebbe rilasciare la stringa di query.

<?php
wp_enqueue_script(
   'myscript',
   '/path/to/script.js',
   array(),
   null
);

3

Prefazione

L'ho risolto in modo molto diverso da SickHippie e chrisguitarguy e immagino che non sia il modo in cui dovrebbe essere risolto, ma funziona davvero bene per me.

Il codice...

Ho inserito questo frammento di codice alla fine del functions.phpfile del mio tema :

function remove_cssjs_querystring( $src ) {
  if( strpos( $src, '?rev=' ) ) // copy/paste this line and the next one to take away what you want from the end of your css/js
    $src = remove_query_arg( 'rev', $src );
  if( strpos( $src, 'ver=' ) )
    $src = remove_query_arg( 'ver', $src );
  return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_querystring', 10, 2 );
add_filter( 'script_loader_src', 'remove_cssjs_querystring', 10, 2 );

Da dove viene l'idea ...

Lo cercavo su Google e ho trovato questo articolo , ma continuavo ad avere un problema con css / js: a questo punto il mio codice aveva ancora (qua e là) alla fine qualcosa di simile .../some-stylesheet.css?rev=...e ho pensato di estendere lo snippet di codice a un po 'per includere tutto ciò che avrebbe potuto essere dopo .css.

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.