it-swarm-pt.tech

Como vincular arquivos jQuery/Javascript externos ao WordPress

Então, estou usando o Starkers para basear meu próximo WP tema 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 que o jquery era 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 consertar 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() deva ser a última coisa no elemento <head>, estou um pouco confuso agora Imaginando se devo colocar wp_head() no topo para que o arquivo WP incluído no jQuery seja usado para todos os meus plugins, mesmo que isso não signifique.

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

Eu também gostaria de usar (pelo menos experimento) com o uso da versão do jQuery do Google CDN, mas não quero incluí-lo 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!

15
Ben Everard

A partir do texto da sua pergunta, você deve adicionar scripts escrevendo as tags <script> no seu modelo. Adicione seus próprios scripts via wp_enqueue_script() em seu modelo functions.php, apropriadamente definindo dependências em jQuery, e wp_head() adicionará 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 codex para mais informações.

9
Annika Backstrom

Eu sugiro dar uma olhada em 5 dicas para usar jQuery com 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 verificar o Use o Google Libraries plugin.

7
Travis Northcutt

Embora @tnorthcutt esteja correto de que você deve remover a janela 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 que WP core. Tanto o núcleo quanto os plugins dependem de estar lá. Portanto, se você não atualizar seu tema com a mais nova jquery toda vez que o WP for atualizado, seu site poderá quebrar.

O código a seguir fará com que o seu tema sempre carregue a versão correta do jquery, primeiro procurando qual versã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');
1
cjbj