wake-up-neo.com

Entfernen Sie? Ver = aus wp_register_script

Ich bekomme Probleme beim Google Speed ​​Test bezüglich der Abfragezeichen in meinen Skripten. Ich versuche sie zu entfernen, indem ich false als Argument für diesen Parameter übergebe. Es scheint jedoch keine Wirkung zu haben:

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

PS: Der "myversionnumber" -Teil des js-Dateinamens ist mein Mittel zur Steuerung des Cache/der Versionierung und nicht der? Ver = -Ansatz, der anscheinend einige Proxy-Server auslöst (laut Google Pagespeed-Test):

Entfernen von Abfragezeichenfolgen aus statischen Ressourcen Durch Aktivieren der öffentlichen Zwischenspeicherung in den HTTP-Headern für statische Ressourcen kann der Browser Ressourcen von einem nahe gelegenen Proxyserver anstatt von einem Remote-Origin-Server herunterladen. Mehr erfahren

Vorschläge für diese Seite

Ressourcen mit einem "?" in der URL werden von einigen Proxy-Caching-Servern nicht zwischengespeichert. Entfernen Sie die Abfragezeichenfolge und codieren Sie die Parameter in die URL für die folgenden Ressourcen:

8
Scott B

Ich denke, Sie müssen NULL als 4. Parameter übergeben.

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

Vorwort

Ich habe das viel anders gelöst als SickHippie und chrisguitarguy und ich denke, es ist nicht so, wie es gelöst werden soll, aber es funktioniert wirklich gut für mich.

Der Code...

Ich habe diesen Codeausschnitt am Ende der functions.php-Datei meines Themas eingefügt:

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 );

Woher die Idee kam ...

Ich suchte bei Google danach und fand diesen Artikel , aber ich hatte immer wieder ein Problem mit CSS/JS: Zu diesem Zeitpunkt hatte mein Code (hier und da) noch etwas wie .../some-stylesheet.css?rev=... und ich dachte darüber nach Erweiterung des Code-Snippets um alles, was nach .css hätte sein können.

3
vcoppolecchia

Sie können null als Versionswert an wp_register_script oder wp_enqueue_script übergeben und die Abfragezeichenfolge löschen.

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