Est-ce que quelqu'un a déjà utilisé les plugins jQuery UI dans la zone d'administration de Wordpress?
J’ai essayé d’utiliser la fonctionnalité datepicker dans jQuery UI, mais elle est en conflit avec jQuery intégré dans Wordpress admin. http://docs.jquery.com/UI/Datepicker
Voici le message d'erreur que je reçois dans la console:
Uncaught TypeError: Cannot read property 'apply' of undefined
a.widget.a.extend._trigger
b.Widget._createWidget
b.widget.b
b.widget.bridge.b.fn
c.extend.each
c.fn.c.each
b.widget.bridge.b.fn
postboxes.init
postboxes.add_postbox_toggles
(anonymous function)
c.extend.ready
L
Que pourrais-je faire pour éviter ce conflit?
Ajout du code utilisé pour inclure le jquery:
wp_register_script( 'jquery-tooltip', 'http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js');
wp_register_script( 'jquery-ui-datepicker', get_bloginfo('template_directory') . '/js/jquery-ui-1.8.8.custom.min.js' );
wp_register_script( 'jquery-admin-internal', get_bloginfo('template_directory') . '/js/jquery.admin.internal.js' );
wp_register_script( 'jquery-internal', get_bloginfo('template_directory') . '/js/jquery.internal.js' );
function enqueue_admin_jquery() {
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_script('jquery-admin-internal');
}
add_action('admin_init', 'enqueue_admin_jquery');
Cela fonctionnait lorsque j’utilisais la version 1.7.3 de l’interface utilisateur jQuery.
La version 1.8.9 semble avoir des problèmes de compatibilité avec le jQuert utilisé par l'administrateur Wordpress.
C'est ce que j'inclus dans mon plugin d'agenda:
// Alternative solution for loading scripts only in plugin page
if( (is_admin() ) && (isset($_GET['page']))) {
// Register scripts and styles
add_action('admin_init', 'wp_eventcal_init');
}
function wp_eventcal_init() {
// Only load these scripts in Admin
wp_deregister_script('jquery-ui-core');
wp_register_script('jquery-ui','http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.js',array('jquery'));
wp_enqueue_script('ui-datepicker', plugins_url('js/jquery.ui.datepicker.min.js',__FILE__));
wp_enqueue_script('ui-timepicker', plugins_url('js/jquery.timepicker.js',__FILE__));
wp_enqueue_script('wp-calendar', plugins_url('js/wp-eventcal.js',__FILE__));
wp_enqueue_style('event_cal_css', plugins_url('styles/eventcal.css',__FILE__));
}
Alors je fais juste ça:
jQuery("#event_startTime, #event_endTime").timePicker();
Je pense que certaines installations de la version 3.1 ne chargent pas tous les scripts de support de JQuery UI 1.8.9 requis. En particulier, "widgets.js". Par conséquent, l'erreur "widgets".