WordPress脚本文件版本号在实时环境中更改

时间:2016-01-22 作者:brandozz

我正在我的函数文件中注册Wordpress的javascript文件,如下所示:

if( !function_exists( "theme_js" ) ) {  
  function theme_js(){    

wp_register_script(\'wpbs-scripts\', 
          get_template_directory_uri() . \'/library/js/min/scripts.min.js\', 
          array(\'jquery\'), 
          \'1.43\',
          \'true\' );

wp_enqueue_script(\'wpbs-scripts\');
  }
}
add_action( \'wp_enqueue_scripts\', \'theme_js\' );
在我的生产环境中,他们使用版本号正常执行,正如您所期望的“scripts.min.js/?ver=1.43。但在live server上,版本号是一个32位的随机数字字符串和小写字母,就像这样”脚本。min.js/?ver=65cat8def2cbb5f145751979a4b2b7cf”。

我不知道是什么原因导致了这一切,而且这似乎是最近才发生的。我开始注意到人们需要刷新网站才能看到变化。

3 个回复
SO网友:Charles

我没有直接的答案来解决您的问题,因为它(请查看edit 第一部分添加)但是这个代码片段(function) 可能会帮助您解决的版本问题。js以及。css文件。

/**
 * Remove query (output)string from .js / .css
 * Using filters
 */
function wpse215386_remove_script_version( $src ){
  $parts = explode( \'?ver\', $src );
  return $parts[0];
}
// for .js files
add_filter( \'script_loader_src\', \'wpse215386_remove_script_version\', 15, 1 );
// for .css files
add_filter( \'style_loader_src\', \'wpse215386_remove_script_version\', 15, 1 );
使用时请保留版本号enqueue 如果没有使用它们的具体原因。添加js填充页脚以帮助您更快地加载页面,有关参考,请参阅$in_footer.

考虑更新/升级,以及当版本发生变化且与您在功能中使用的版本不匹配时,会发生什么情况。

上述功能还有另一个作用(积极的作用),即帮助使文件更易于缓存查看我的答案here 请给出一些解释

法典:registerenqueue 预防问题的正确方法。

<小时>Edit

其中一个原因可能是安全性或缓存插件(或者两者都有),因此禁用插件以查看哪些插件可能导致问题。使可能debug 在里面wp-config.php 查看是否在日志文件中删除错误消息。(如果配置正确,日志文件将位于wp-content 文件夹

SO网友:mrmadhat

您不需要使用wp\\u enqueue\\u脚本而不是wp\\u register\\u脚本吗?我从wp_enqueue_script codex page 添加依赖于jQuery的脚本的正确方法是:

<?php

  function my_scripts_method() {
    wp_enqueue_script(
      \'custom-script\',
      get_stylesheet_directory_uri() . \'/js/custom_script.js\',
      array( \'jquery\' )
  );
}

add_action( \'wp_enqueue_scripts\', \'my_scripts_method\' );

?>
这可能是导致您出现问题的原因。

SO网友:brandozz

WordPress插件Wordfence(版本6.0.22)导致了此问题。要解决此问题,请转到“选项”并取消选中“隐藏WordPress版本”。

相关推荐