it-swarm.com.de

jQuery UI AutoComplete & wp_enqueue_script

Ich habe mir die in WordPress enthaltenen Skripte ( wp_enqueue_script ) angesehen und nicht gefunden, was ich zur Verwendung von jQuery UI Autocomplete einschließen soll

Ich benutze es im Admin-Bereich. Sollte ich nur die jQuery-Benutzeroberfläche von Google CDN einschließen? Ich denke, es wird mit der jQuery-Benutzeroberfläche von WordPress in Konflikt geraten? Es scheint zu funktionieren.

1
JM at Work

Die automatische Vervollständigung von jQuery wird nicht mit dem Paket WP geliefert. Sie müssen diese Komponente also von der jQuery-Benutzeroberfläche herunterladen und für die Verwendung in eine Warteschlange stellen. Die Verwendung von jQuery UI bei Google CDN funktioniert auch, aber meiner Meinung nach ist das nicht sehr gut, da Sie die gesamte jQuery UI-Bibliothek laden werden, während Sie nur eine benötigen Komponente.

Dies ist der Code, den ich zum Laden der automatischen Vervollständigung von jQuery (in einem Plugin) verwendet habe:

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

Ich fange gerade erst an, mit dem Registrieren von Skripten, dem Hinzufügen meiner eigenen usw. herumzuspielen. Ich glaube, es ist in Ordnung, das Google CDN zu verwenden, solange Sie die WordPress-Version abmelden (nur beim Anzeigen der Website, nicht im Admin-Bereich).

Ich glaube, der richtige Weg, dies zu tun, besteht darin, die if ( !is_admin ()...-Methode zu verwenden. Auf diese Weise wird sichergestellt, dass im Admin-Bereich weiterhin alles ordnungsgemäß funktioniert. Sie können jedoch trotzdem das Google CDN nutzen.

Hier ist ein Beispiel:

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

Ich glaube, das ist der Weg, um das zu erreichen, wonach du fragst, aber ich würde gerne einige Vorschläge des "Gurus" dazu hören.

*BEARBEITEN:

Ich hätte feststellen sollen, dass Sie dies im Admin-Bereich verwenden, da dies in Ihrer Frage eindeutig angegeben ist. Im WP-Codex-Funktionsreferenz/wp-Enqueue-Skript wird folgende Vorgehensweise vorgeschlagen:

<?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