web-dev-qa-db-fra.com

interface utilisateur jquery dans wordpress admin

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');
3
user1635

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.

0
user1635

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();
1
Steven

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".

0
user3810