WordPress插件wp_enque_脚本()
所以我正在开发我的第一个WordPress插件,我遇到了一些困难。。。 我正在做面向对象的…WordPress插件wp_enque_脚本(),wordpress,Wordpress,所以我正在开发我的第一个WordPress插件,我遇到了一些困难。。。 我正在做面向对象的… 在底部,当“加载插件”时,我创建了myClass的一个新实例。每次加载任何页面时,它都会生成一个javascript。这个脚本注册有效,因为每次加载页面时我都会得到一个console.log。然后,它在“发布帖子”上注册一个操作,当管理员发布(保存)一篇新帖子并调用我的发布帖子()方法时,会触发该操作。 发布帖子时调用该方法;我知道这一点,因为如果我取消注释它的前两行,sctipt将与我的var_dum
在底部,当“加载插件”时,我创建了myClass的一个新实例。每次加载任何页面时,它都会生成一个javascript。这个脚本注册有效,因为每次加载页面时我都会得到一个console.log。然后,它在“发布帖子”上注册一个操作,当管理员发布(保存)一篇新帖子并调用我的发布帖子()方法时,会触发该操作。
发布帖子时调用该方法;我知道这一点,因为如果我取消注释它的前两行,sctipt将与我的var_dump一起消失。
我的问题是wp_enque_script()在这个方法中不起作用。由于某些原因,我的脚本没有被调用…
代码如下:
<?php
class myClass{
function __construct(){
// hooks & filters..
add_action( 'publish_post', array($this, 'publish_post'));
wp_enqueue_script(
'plugin', //$handle
plugins_url('/js/plugin.js', __FILE__)//$src
);
}
function publish_post(){
//global $wp_query;
//die(var_dump($wp_query));
wp_enqueue_script(
'publish', //$handle
plugins_url('/js/publish.js', __FILE__)//$src
);
}
}
/* Initialise outselves */
add_action( 'plugins_loaded', create_function( '', 'global $myObject; $myObject = new myClass;' ));
?>
有人知道为什么会这样吗?thanx也有同样的问题。你必须将它添加到一个钩子中,例如init(我尝试使用admin_head钩子,但没有成功,所以我选择了init,因为我在另一个插件中看到了它。它似乎对我来说很好) 在构造中添加:
add_action('init', array($this, 'loadMyScripts'));
在操作调用的函数中:
public function loadMyScripts()
{
wp_enqueue_script(
'publish', //$handle
plugins_url('/js/publish.js', __FILE__)//$src
);
}