it-swarm-es.com

Cómo vincular archivos jQuery/Javascript externos con WordPress

Así que estoy usando Starkers para basar mi próximo tema WP y me he topado con un pequeño problema, estaba incluyendo mi propia versión de jQuery en el archivo header.php pero al inspeccionar mi sitio utilizando Firebug noté JQuery fue descargado dos veces, hice un poco de excavación y noté que no solo estaba incluyendo el archivo sino también la función wp_head().

Al tratar de solucionar el problema, noté un comentario en el archivo de encabezado, cuyo origen proviene del tema Twenty Ten:

/* Always have wp_head() just before the closing </head>
 * tag of your theme, or you will break many plugins, which
 * generally use this hook to add elements to <head>, such 
 * as styles, scripts, and meta tags
 */

Así que aquí está mi problema, tengo la impresión de que el archivo jQuery debe establecerse antes que cualquier otro archivo que quiera usarlo y que wp_head() debería ser la última cosa en el elemento <head>, estoy un poco confundido ahora que estoy preguntándome si debo poner wp_head() en la parte superior para que el WP incluye el archivo jQuery se usará para todos mis complementos, aunque diga que no lo haga.

Comenté la línea jQuery en la función wp_head() pero se requiere para la página de administración, así que tuve que volver a ponerla.

También me gustaría usar (al menos experimentar) con la versión CDN de Google de jQuery, ¡pero no quiero incluirla dos veces!

Espero que entiendan lo que estoy tratando de explicar, cualquier sugerencia sobre cómo puedo resolver este problema sería muy apreciada. También agradecería cualquier consejo sobre cómo manejar sus archivos JavaScript con el archivo de encabezado.

¡Gracias!

15
Ben Everard

A partir de la redacción de su pregunta, debe agregar scripts escribiendo etiquetas <script> en su plantilla. Agregue sus propios scripts mediante wp_enqueue_script() en el functions.php de su plantilla, configurando adecuadamente las dependencias en jQuery, y wp_head() agregará los scripts para usted.

function my_scripts() {
    wp_enqueue_script( 'my-sweet-script', get_bloginfo('template_directory') . '/script.js', array('jquery') );
}
add_action('template_redirect', 'my_scripts');

Vea la página codex para más información.

9
Annika Backstrom

Sugiero echar un vistazo a 5 Consejos para usar jQuery con WordPress . Entre otras cosas, muestra el código necesario para cargar jQuery desde la biblioteca de Google:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        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');
    }
}
add_action('init', 'my_init');

También puede consultar Usar las bibliotecas de Google plugin.

7
Travis Northcutt

Si bien @tnorthcutt tiene razón en que debe quitar correctamente el jQuery nativo de WP si desea cargar el suyo propio, está seguro de tener problemas cuando cargue una versión de jquery diferente que WP core. Tanto el núcleo como los complementos confían en que esté allí. Entonces, si no actualiza su tema con el jQuery más reciente cada vez que se actualiza WP, su sitio puede fallar.

El siguiente código se asegurará de que su tema siempre cargue la versión correcta de jquery, al buscar primero qué versión WP está usando y luego cargarla desde Google:

$wp_jquery_version = $GLOBALS['wp_scripts']->registered['jquery-core']->ver;
$jquery_version = ( $wp_jquery_version == '' ) ? '1.8.3' : $wp_jquery_version; // fallback, just in case 
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/'. $jquery_version .'/jquery.min.js', $jquery_version, false );
wp_enqueue_script('jquery');
1
cjbj