如何正确加载WordPress附带的默认脚本?

时间:2011-01-29 作者:haha

我想知道加载现有脚本的正确方法wp-includes/js/jquery/

我要加载的示例jQuery UI Tabs

我现在做了什么

function sample_exists_code() {
   echo \'<script type="text/javascript" src="\'. CONSTANTS_JS .\'/jquery.js"></script>\'."\\n"; 
   echo \'<script type="text/javascript" src="\'. CONSTANTS_JS .\'/jquery-ui.js"></script>\'."\\n"; 
}    
add_action(\'admin_head\', \'sample_exists_code\');
这段代码可以很好地加载UI选项卡。

但当我尝试使用此代码时,它不起作用

function sample_exists_code() {
    wp_enqueue_script(\'jquery\');   
    wp_enqueue_script(\'jquery-ui-tabs\');            
}    
add_action(\'admin_head\', \'sample_exists_code\');
让我知道调用现有脚本的正确方法。

更新:

// load existings js and template css.
function sample_admin_js_head()
{
    wp_enqueue_script(\'jquery-ui-tabs\', null, array(\'jquery-ui-core\',\'jquery\'), null, false);
    echo \'<link rel="stylesheet" type="text/css" href="\' . CONSTANTS_STYLES . \'/style.css" />\' . "\\n";
}

// load up the menu page
function sample_add_page()
{
    $optionpage = add_theme_page(__(\'Theme Options\'), __(\'Theme Options\'), \'edit_theme_options\', \'sample\', \'sample_do_template\');
    add_action( "admin_print_scripts-$optionpage", \'sample_admin_js_head\' );
}

add_action(\'admin_menu\', \'sample_add_page\');

3 个回复
最合适的回答,由SO网友:MikeSchinkel 整理而成

你好@haha:

\'admin_init\' 无疑是加载脚本的一种可行方法,但您可能还想看看这篇博客文章,并考虑使用"admin_print_scripts-{$page}" 钩子,它可以让您仅在需要时加载页面,而不会加重其他管理页面的负担:

以下是博客中的代码,尽管有一些修改:

$your_page = add_management_page(\'myplugin\',\'myplugin\',9,__FILE__,
               \'yourplugin_admin_page\');
add_action("admin_print_scripts-{$your_page}",\'yourplugin_jquery_tabs_loader\'); 
function yourplugin_jquery_tabs_loader() {
  // what your plugin needs in its <head>
}

SO网友:Rarst

Codex文档打开wp_enqueue_script() 强烈建议仅将其挂接到init. 示例还显示了使用admin_init 对于管理领域,但我不完全确定这是推荐的。

SO网友:haha

Got it worked :)

function sample_exists_code() {
wp_enqueue_script(\'jquery-ui-tabs\', null, array(\'jquery-ui-core\', \'jquery\'), null, false);     
}    
add_action(\'admin_init\', \'sample_exists_code\');
结束

相关推荐

如何在插件中使用wp_enQueue_script jQuery

我想在我的Wordpress插件中使用jQuery。我试图使用enqueue脚本加载jquery库,但它引发了一个错误。错误:$不是函数这是我的主插件中的代码片段。php文件。。。function ($post) { wp_enqueue_script(\'jquery\'); ?> <script type=\"text/javascript\"> function doTestParse(searchString