JQuery UI自动完成&wp_enQueue_脚本

时间:2011-06-30 作者:JM at Work

我查看了WordPress中包含的脚本(wp_enqueue_script) 没有找到使用jQuery UI Autocomplete应该包含的内容

我在管理区使用它。我应该只包括来自Google CDN的jQuery UI吗?我认为这会与WordPress的jQuery UI冲突?这似乎很管用。

2 个回复
SO网友:Anh Tran

jQuery autocomplete不是随WP包提供的。因此,您必须从jQuery UI下载此组件并将其排队以供使用。在Google CDN上使用jQuery UI也可以,但在我看来,这不是很好,因为您将加载整个jQuery UI库,而您只需要one 组成部分

这是我用来加载jQuery自动完成(在插件中)的代码:

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

function wpse_21556_admin_menu() {
    $page = add_management_page( \'Plugin\', \'Plugin\', \'manage_options\', \'plugin-page-hook\', \'wpse_21556_plugin_page\' );

    add_action( "admin_print_styles-{$page}", \'wpse_21556_admin_print_styles\' );
}

function wpse_21556_admin_print_styles() {
    // jQuery autocomplete
    wp_enqueue_style( \'jquery-ui-autocomplete\', plugins_url( \'css/jquery-ui-1.8.2.custom.css\', __FILE__ ) );
    wp_register_script( \'jquery-ui-autocomplete\', plugins_url( \'js/jquery.ui.autocomplete.min.js\', __FILE__ ), array( \'jquery-ui-widget\', \'jquery-ui-position\' ), \'1.8.2\', true );

    // Plugin script and style
    wp_enqueue_style( \'plugin-css\', plugins_url( \'css/style.css\', __FILE__ ) );
    wp_enqueue_script( \'plugin-js\', plugins_url( \'js/script.js\', __FILE__ ), array( \'jquery-ui-autocomplete\' ), \'1.1\', true );
}

SO网友:Jeremy Jared

我刚刚开始尝试注册脚本、添加我自己的内容等。我相信只要你注销WordPress版本(仅在查看网站时,而不是在管理区域),就可以使用Google CDN。

我认为正确的方法是使用if ( !is_admin ()... 方法这将确保管理领域的一切都继续正常工作,但仍然允许您利用Google CDN。

以下是一个示例:

if ( !is_admin() ){
   wp_deregister_script(\'jquery\');
   wp_register_script(\'jquery\', ("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"), false, \'1.3.2\');
   wp_enqueue_script(\'jquery\');
}
我相信这就是如何实现你的要求,但我想听听“大师”对此的一些建议。

*编辑:

我应该注意到你在管理方面使用这个,因为它在你的问题中有明确的说明。以下是WP Codex Function Reference/wp enqueue script:

<?php
function my_init_method() {
    if (!is_admin()) {
        wp_deregister_script( \'jquery\' );
        wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js\');
        wp_enqueue_script( \'jquery\' );
    }
}    
add_action(\'init\', \'my_init_method\');
?>

结束