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

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".

图片转代码服务由CSDN问答提供 功能建议

我正在尝试仅在特定脚本加载完成后加载某些内容。 Wordpress提供了一种方法,通过'wp_script_is'检测脚本是否已加载。 当我使用带有“完成”的jquery句柄时,它可以工作,但是当我使用自定义脚本句柄时,没有任何反应。 我的代码:

  function my_custom_scripts(){
 wp_enqueue_script('custom_script_handle','/ tstem_plugins / temp.js',array('plugins','jquery'),  '1.0',true); 
} 
add_action('wp_enqueue_scripts','my_custom_scripts');  
 
函数include_file(){
 if(wp_script_is('custom_script_handle','done')){
 include('dependent_file.php'); 
} 
} 
} nadd_action('wp_footer','include_file  '); 
   
 
 

有趣的是,如果我使用'jQuery'脚本句柄而不是我的自定义脚本句柄,它就可以工作。 或者,如果我使用“排队”而不是“完成”的自定义脚本句柄,它也可以工作,但我需要它专门用于“完成”。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

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 );
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题