Portanto, estou usando o Starkers para basear meu próximo tema do WP e deparei-me com um pequeno problema. Incluí minha própria versão do jQuery no header.php
arquivo, mas ao inspecionar meu site usando o Firebug, notei que o jquery estava sendo baixado duas vezes. Pesquisei um pouco e notei que não apenas eu estava incluindo o arquivo, mas também a wp_head()
função.
Ao tentar corrigir o problema, notei um comentário no arquivo de cabeçalho, originário do tema dos vinte e dez:
/* 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: tenho a impressão de que o arquivo jQuery precisa ser definido antes de qualquer outro arquivo que queira usá-lo e que wp_head()
deve ser a última coisa no <head>
elemento. Estou um pouco confuso agora, como deveria estar pensando. Coloquei wp_head()
na parte superior para que o arquivo jQuery incluído no WP seja usado para todos os meus plugins, mesmo que ele não o faça.
Eu comentei a linha jQuery na wp_head()
função, mas é necessária para a página de administração, então tive que colocá-la de volta.
Também gostaria de usar (pelo menos experimentar) o uso da versão do Google CDN do jQuery, mas não quero incluí-la duas vezes!
Espero que você entenda o que estou tentando explicar, todas as sugestões sobre como resolver esse problema serão muito apreciadas. Também gostaria de receber algum conselho sobre como você lida com seus arquivos JavaScript com o arquivo de cabeçalho.
Obrigado!
fonte
Respostas:
Na redação da sua pergunta, você deve adicionar scripts escrevendo
<script>
tags no seu modelo. Adicione seus próprios scriptswp_enqueue_script()
nos moldesfunctions.php
, configurando dependências apropriadamente no jQuery ewp_head()
adicionará os scripts para você.Veja a página do codex para mais informações.
fonte
<script>
tag, esta é a alternativa que eu estava procurando, muito obrigado! :-)'template_redirect'
invés de'init'
.is_admin()
.get_header()
, fazendo-functions.php
o enfileirá-lo em todas as páginas que podem não ser necessárias. Se eu tiver um global, enfileirá-loheader.php
antes dewp_head()
ser chamado. Dessa forma, os enfileiramentos estão onde você esperaria que eles estivessem no<head>
Sugiro dar uma olhada em 5 dicas para usar o jQuery com WordPress . Entre outras coisas, mostra o código necessário para carregar o jQuery da biblioteca do Google:
Você também pode conferir o plug-in Usar bibliotecas do Google .
fonte
template_redirect
invés deinit
.Embora @tnorthcutt esteja certo de que você deve desenfileirar adequadamente o jquery nativo do WP, se desejar carregar o seu próprio, você certamente encontrará problemas ao carregar uma versão jquery diferente do núcleo do WP. Tanto o núcleo quanto os plugins dependem de ele estar lá. Portanto, se você não atualizar seu tema com o jquery mais novo toda vez que o WP for atualizado, seu site poderá ser interrompido.
O código a seguir garantirá que seu tema sempre carregue a versão correta do jquery, procurando primeiro qual versão o WP está usando e depois carregando a versão do Google:
fonte