Pregunta

Así que estoy usando Starkers basar mi próximo tema de WP sobre y me he topado con un pequeño problema, que estaba incluido mi propia versión de jQuery en el archivo header.php pero al inspeccionar un sitio web mediante Firebug me di cuenta estaba siendo jQuery descargado dos veces, hice un poco de excavación y se dio cuenta de que no sólo estaba incluido el archivo pero también lo era la función wp_head().

Al tratar de solucionar el problema que se dio cuenta de un comentario en el archivo de cabecera, de la que se originó vino 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 de jQuery tiene que ser establecido antes de que cualquier otro archivo que quiera usarlo y que wp_head() debe ser la última cosa en el elemento <head>, estoy un poco confundido ahora como me pregunto debo poner wp_head() en la parte superior por lo que el archivo WP incluido jQuery será utilizado para todos mis plugins, aunque dice que no lo hiciera.

Lo hice en comentario la línea de jQuery en la función wp_head() pero ha requerido para la página de administración, así que tuve que poner de nuevo.

También me gustaría utilizar (al menos experimento) con el uso de la versión de Google CDN de jQuery, pero no quiero incluir dos veces!

Espero que entiendan lo que estoy tratando de explicar, alguna sugerencia sobre cómo puedo solucionar este problema serían más apreciados. También apreciaría cualquier consejo sobre cómo manejar sus archivos JavaScript con el archivo de cabecera.

Gracias!

¿Fue útil?

Solución

A partir de la formulación de su pregunta, debe ser la adición de secuencias de comandos escribiendo etiquetas <script> en su plantilla. Añadir sus propias secuencias de comandos a través de wp_enqueue_script() en functions.php de su plantilla, adecuadamente dependencias de ajuste en jQuery, y wp_head() añadirá 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');

Ver la página de códice para obtener más información.

Otros consejos

sugiero echar un vistazo a href="http://www.ericmmartin.com/5-tips-for-using-jquery-with-wordpress" 5 consejos para el uso de jQuery con WordPress . Entre otras cosas, se muestra el código necesario para cargar jQuery de 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 podría revisar la href="http://wordpress.org/extend/plugins/use-google-libraries/" rel="nofollow"> complemento .

A pesar de @tnorthcutt es correcto que se debe quitar de la cola correctamente jQuery nativa de WP, si se desea cargar su cuenta, usted está seguro de que tenga problemas cuando se está cargando una versión diferente de jQuery que WP núcleo. Tanto básicas y complementos confían en que esté allí. Así que si usted no actualiza su tema con la más nueva jQuery cada vez que se actualiza WP, su sitio puede romper.

El siguiente código se asegurará de que su tema siempre cargas de la versión correcta de jQuery, primero buscando la versión WP está utilizando y luego cargar de que uno de 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');
scroll top