Poner en cola jQuery en complementos

2

Quiero usar jQuery en un complemento. En functions.php del tema que estoy usando, encontré:

if(!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js');

Como lo entiendo, esto carga jQuery y estoy listo para comenzar. Todo lo que tengo que hacer es agregar esto al archivo javascript de mi complemento:

jQuery(document).ready(function($) {

    //put jquery code here

})

A) ¿Es eso? ¿Me estoy perdiendo algo?

No vi esto en el header.php:

<?php wp_enqueue_script('jquery');?>
<?php wp_head(); ?>

B) También me gustaría usar jquery-ui. En un complemento que venía con el tema, encontré:

wp_enqueue_script("jquery-ui-sortable");
wp_enqueue_script("jquery-ui-draggable");
wp_enqueue_script("jquery-ui-droppable"); 

¿Simplemente hago lo mismo que arriba en el propio complemento? Y luego llámalo en mi archivo js como:

jQuery(document).ready(function($){

}

¿Qué sucede si deseo usar otros bits de la biblioteca jQuery-UI? ¿Cómo puedo saber qué partes de jQuery-UI están incluidas en el tema?

Lo siento por las preguntas básicas. Quiero asegurarme de que estoy bien configurado y de que entiendo lo que sucede.

Información adicional:

Digamos que tengo un complemento llamado "myplugin". El plugin funciona. Pero, quiero añadir alguna funcionalidad jQuery. En la función principal de myplugin agrego:

wp_enqueue_script('myplugin_script', 'http://mysite/wp-content/plugins/myplugin/js/myplugin_script.js');

En myplugin_script.js, tengo:

jQuery.noConflict();

jQuery(document).ready(function($) {                
    alert("Hello");                                                                     
})

¿Por qué no aparece la alerta? ¿Necesito agregar el script a un gancho? ¿O wp_enqueue_script hará que se dispare?

Gracias.

-Laxmidi

    
pregunta Laxmidi 02.09.2011 - 18:28

1 respuesta

5

En primer lugar, si su código (o el código del tema) está eliminando el registro de jQuery y volviéndolo a registrar desde otra ubicación (Google), debe agregarlo en algún lugar:

jQuery.noConflict();

Esto hace que jQuery coopere con otros scripts (es decir, Prototype) que intentan definir la variable $ globalmente. WordPress tiene esta línea incluida en su versión, Google no.

Si necesitas poner en cola jQuery y un montón de cosas de jQuery UI, deberás hacerlo.

function my_enqueue() {
    wp_enqueue_script('jquery');
    wp_enqueue_script("jquery-ui-sortable");
    wp_enqueue_script("jquery-ui-draggable");
    wp_enqueue_script("jquery-ui-droppable"); 
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );

Esto enganchará sus entradas a la acción apropiada que las enviará al encabezado. Supongo que los scripts de jQuery UI ya están registrados en WordPress.

    
respondido por el EAMann 02.09.2011 - 18:34

Lea otras preguntas en las etiquetas