wordpress wp_script_is 无法处理自定义脚本

wordpress wp_script_is done not working on custom scripts

我试图仅在特定脚本加载完成后才加载某些内容。 Wordpress provides a method 检测脚本是否通过 'wp_script_is' 加载。当我将 jquery 句柄与 "done" 一起使用时,它可以工作,但是当我使用自定义脚本句柄时,没有任何反应。我的代码:

function my_custom_scripts() {
   wp_enqueue_script( 'custom_script_handle', '/stem_plugins/temp.js', array( 'plugins', 'jquery' ), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' ); 

function include_file() {
  if ( wp_script_is( 'custom_script_handle', 'done' ) ) {
     include('dependent_file.php');
  }
}
add_action( 'wp_footer', 'include_file' );

有趣的是,如果我使用 'jQuery' 脚本句柄而不是我的自定义脚本句柄,它就可以工作。或者,如果我将我的自定义脚本句柄与 "enqueued" 而不是 "done" 一起使用,它也可以工作,但我需要它专门用于 "Done".

我怀疑您的自定义脚本在您 运行 wp_script_is() 时尚未打印,因为您使用的是默认 add_action() 优先级 10。添加任何优先级大于 10 应该可以解决问题:

add_action( 'wp_footer', 'include_file', 20 );