web-dev-qa-db-fra.com

jQuery UI AutoComplete & wp_enqueue_script

J'ai regardé les scripts inclus dans WordPress ( wp_enqueue_script ) et n'ai pas trouvé ce que je devais inclure pour utiliser l'auto-complétion de l'interface utilisateur jQuery

Je l'utilise dans la zone d'administration. Devrais-je simplement inclure l'interface utilisateur jQuery de Google CDN? Je pense que cela va entrer en conflit avec l'interface utilisateur jQuery de WordPress? Il semble que ça marche.

1
JM at Work

La saisie semi-automatique jQuery n’est pas livrée avec le package WP. Vous devez donc télécharger ce composant à partir de l'interface utilisateur de jQuery et le mettre en file d'attente pour l'utiliser. Utiliser jQuery UI sur Google CDN fonctionne également, mais à mon avis, ce n’est pas très bon, car vous allez charger toute la bibliothèque jQuery UI alors que vous n’avez besoin que de un composant.

C'est le code que j'ai utilisé pour charger la complétion automatique de jQuery (dans un plugin):

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 );
}
1
Anh Tran

Je commence tout juste à jouer avec l'enregistrement des scripts, l'ajout de mon propre etc.

Je pense que la bonne façon de faire est d’utiliser la méthode if ( !is_admin ().... Cela garantira que tout continuera à fonctionner correctement dans la zone d'administration, tout en vous permettant de tirer parti du CDN de Google.

Voici un exemple:

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');
}

Je pense que c'est la manière de réaliser ce que vous demandez, mais j'aimerais entendre certaines des suggestions du "gourou" à ce sujet.

*MODIFIER:

J'aurais dû remarquer que vous l'utilisiez dans la zone d'administration, car cela est clairement indiqué dans votre question. Voici la manière suggérée dans le référence de la fonction de codex WP/le script de mise en file d'attente wp :

<?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');
?>
0
Jeremy Jared