Como vincular arquivos jQuery / Javascript externos ao WordPress

14

Estou usando o Starkers para basear meu próximo tema do WP e me deparei com um pequeno problema, incluindo minha própria versão do jQuery no arquivo header.php , mas ao inspecionar meu site usando o Firebug, notei o jquery estava sendo baixado duas vezes, eu fiz um pouco de escavação e notei que não só eu estava incluindo o arquivo, mas também a função wp_head() .

Na tentativa de corrigir o problema, notei um comentário no arquivo de cabeçalho, do qual se originou veio do 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
 */

Então aqui está o meu problema, eu tenho a impressão de que o arquivo jQuery tem que ser definido antes de qualquer outro arquivo que queira usá-lo e que wp_head() deve ser a última coisa no elemento <head> , Um pouco confuso agora como eu estou querendo saber se eu coloco wp_head() no topo para o arquivo de jQuery incluído WP será usado para todos os meus plugins, mesmo que ele diz para não fazê-lo.

Comentei a linha jQuery na função wp_head() , mas ela é obrigatória para a página de administração, então tive que colocá-la de volta.

Também gostaria de usar (pelo menos experimente) o uso da versão do jQuery do Google CDN, mas não quero incluí-la duas vezes!

Espero que você entenda o que estou tentando explicar, qualquer sugestão sobre como posso resolver esse problema seria muito apreciada. Eu também apreciaria qualquer conselho sobre como você lida com seus arquivos JavaScript com o arquivo de cabeçalho.

Obrigado!

    
por Ben Everard 17.08.2010 / 14:04

3 respostas

9

A partir do texto da sua pergunta, você deve adicionar scripts escrevendo <script> tags no seu modelo. Adicione seus próprios scripts por meio de wp_enqueue_script() no functions.php de seu modelo, definindo dependências apropriadamente em jQuery e wp_head() adicione os scripts para você.

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

Veja a página do códice para mais informações.

    
por Annika Backstrom 17.08.2010 / 14:53
7

Eu sugiro dar uma olhada em 5 dicas para usar o jQuery com o WordPress . Entre outras coisas, mostra o código necessário para carregar o jQuery da biblioteca do 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');

Você também pode conferir o plug-in Use Google Libraries .

    
por Travis Northcutt 17.08.2010 / 16:01
1

Embora o @tnorthcutt esteja correto de que você deve retirar a jquery nativa do WP corretamente se você quiser carregar o seu próprio, você está certo de ter problemas quando estiver carregando uma versão jquery diferente do núcleo do WP. Tanto o núcleo quanto os plugins dependem de estar lá. Então, se você não atualizar o seu tema com o mais novo jquery toda vez que o WP for atualizado, seu site poderá quebrar.

O código a seguir garantirá que o seu tema sempre carregue a versão correta do jquery, primeiro pesquisando qual versão o WP está usando e carregando aquele do 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');
    
por cjbj 31.10.2016 / 10:27