2013-10-06 129 views
2

OK,这是推动我坚果:加载自定义JavaScript的WordPress插件

我想要建立一个简单的WordPress插件,我试图以确保JS是从PHP分开。我已经通过食品消失了,各种教程,但他们要么都做的假设,或者我只是一个白痴,因为它不工作...基本上,我ultiamtely希望用ajax一些行添加到自定义表的时候我加入后,但首先我刚刚拿到了得到这个的Hello World一个添加后的网页上工作...

当然,它的死很容易:

下面是myplug/JS的JavaScript /myplugin.js:

jQuery(document).ready(function(){ 
    alert("dothis"); 
}); 

下面是在该插件(但不好)的版本:

function admin_load_js(){ 
    echo '<script type="text/javascript" src="http://www.mysite.com/wp-content/plugins/myplugin/js/myplugin.js"></script>'; 
} 
add_action('admin_head', 'admin_load_js'); 

这是略好,但不工作(没有定义的jQuery):

function admin_load_js(){ 
    echo '<script type="text/javascript" src="http://www.mysite.com/wp-content/plugins/myplugin/js/myplugin.js"></script>'; 
} 
add_action('admin_enqueue_scripts', 'admin_load_js'); 

这是我认为它应该做的方式,但没有在所有的工作只是没有按” t做任何事情:

function admin_load_js(){ 
wp_register_script('custom_js', plugins_url('/js/myplugin.js', __FILE__)); 
} 
add_action('admin_enqueue_scripts', 'admin_load_js'); 

有人可以给我一个线索吗?即使谷歌目前不是我的朋友。也许是因为它晚了,我不知道......

回答

8

试试这个:

function admin_load_js(){ 
    wp_enqueue_script('custom_js', plugins_url('/js/myplugin.js', __FILE__), array('jquery')); 
} 
add_action('admin_enqueue_scripts', 'admin_load_js'); 

wp_register_script刚刚注册的脚本。您仍然需要手动加载脚本。

或者你可以使用wp_enqueue_script其所有这一切在同一时间。有了wp_enqueue_script,你可以指定依赖关系(在这个例子中是'jquery'),这样它们就会在脚本之前加载。