在Wordpress插件中加载自定义JavaScript

Chr*_*yne 2 javascript php wordpress jquery

好的,这让我疯了:

我正在尝试构建一个简单的Wordpress插件,我正在努力确保js与php分开.我已经完成了手抄本和各种教程,但要么他们都在做假设,要么我只是一个白痴,因为它不起作用......基本上,我最终希望使用ajax添加一些行来定制我添加帖子时的表格,但首先我要让这个Hello World在Add Post页面上运行...

当然这很容易:

这是myplug/js/myplugin.js中的javascript:

jQuery(document).ready(function(){
    alert("dothis");
});
Run Code Online (Sandbox Code Playgroud)

这是插件中的版本(但很糟糕):

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');
Run Code Online (Sandbox Code Playgroud)

这稍微好一些,但不起作用(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');
Run Code Online (Sandbox Code Playgroud)

这是我认为应该这样做的方式,但根本不起作用只是没有做任何事情:

function admin_load_js(){
 wp_register_script( 'custom_js', plugins_url( '/js/myplugin.js', __FILE__ ) );
}
add_action('admin_enqueue_scripts', 'admin_load_js');
Run Code Online (Sandbox Code Playgroud)

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

man*_*hie 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');
Run Code Online (Sandbox Code Playgroud)

wp_register_script只是注册脚本.您仍需要手动加载脚本.

或者您可以使用wp_enqueue_script同时完成所有操作.使用wp_enqueue_script,您可以指定依赖项(在本例中为"jquery"),以便在脚本之前加载它们.