简短回答jquery-ui.widget
是WP中已包含和注册的标准脚本之一。您不需要注册它,只需排队即可在您的代码中,错误的是dirname
内部功能plugin_url
. 仅限离开__FILE__
作为的第二个参数plugins_url
详细答案:更多信息
jquery-ui.widget
是其中之一
standard wordpress scripts 因此,在大多数情况下,您不必/不需要使用自己上传的文件,只需在wp安装中使用副本即可。
在这种情况下,您不需要注册脚本,因为它已经注册,您只需使用wp_enqueue_script(\'jquery-ui-widget\')
.
这将使Wordpress附带的脚本版本正确排队。在WP(3.6)的当前版本中,“jqueri ui小部件”位于“1.10.3”版本中。
这个版本有问题吗?尝试解决它们。。。另外,因为包含旧版本并不能保证不会有问题:如果另一个插件或主题包含同一脚本的WP版本,我很乐意想象会发生什么。
如果我们忘记了您正在尝试包含一个WP标准脚本,那么您的代码存在的问题位于plugins_url
作用
的第二个参数的文档plugins_url
在codex 不是我见过的最清晰的:
$plugin
- 您希望$路径与哪个父目录相对的插件目录下的路径
如果我们需要传递目录路径(就像您一样)或完整路径(带文件名),则不够清楚。
但在我们阅读的同一法典页面中,下面几行是:plugins_url()
函数通常用于插件文件。通过__FILE__
PHP magic常量代替$plugin
参数使$path
相对于该文件的父目录
现在我们知道我们必须使用这样的函数:
wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', __FILE__ )); // without dirname( )
但请注意,要使此代码正常工作,它必须位于插件根目录中的文件中,所以最好的解决方案是将其放在主插件文件中。原因很简单:
__FILE__
PHP magic常量始终包含写入文件的完整路径,即使该文件是必需的或包含在另一个文件中。因此,如果您将此代码放在插件内部目录中的文件中,它对作用域无效。
还要注意“assets/js/jquery-ui-1.9.2”。小部件。“js”必须相对于主插件文件,因此“assets”必须是插件根目录的一级子文件夹。
希望它能帮助你。