dsv73806 2016-02-06 21:07
浏览 67
已采纳

wordpress wp_script_is没有处理自定义脚本

I'm trying to load something only after a specific script is done loading. Wordpress provides a method to detect if a script loaded or not via 'wp_script_is'. When I use the jquery handle with "done" it works but when I use a custom script handle, nothing happens. My code:

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

Interestingly, if I use the 'jQuery' script handle instead of my custom script handle, it works. Or if I use my custom script handle with "enqueued" instead of "done" it also works but I need it to work specifically with "Done".

  • 写回答

1条回答 默认 最新

  • dongwo2772 2016-02-06 22:07
    关注

    My suspicion is that your custom script hasn't been printed by the time you run wp_script_is(), since you're using the default add_action() priority of 10. Adding any priority greater than 10 should solve the issue:

    add_action( 'wp_footer', 'include_file', 20 );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?