Eu já adicionei meus scripts, mas queria saber o caminho preferido.
Acabei de colocar uma <script>
tag diretamente no header.php
meu modelo.
Existe um método preferido para inserir arquivos js externos ou personalizados?
Como vincular um arquivo js a uma única página? (Eu tenho a página inicial em mente)
theme-development
javascript
naugtur
fonte
fonte
Respostas:
Use
wp_enqueue_script()
no seu temaA resposta básica é usar
wp_enqueue_script()
em umwp_enqueue_scripts
gancho para front-endadmin_enqueue_scripts
para administrador. Pode parecer algo assim (que assume que você está chamando dofunctions.php
arquivo do seu tema ; observe como faço referência ao diretório da folha de estilo):Esse é o básico.
Scripts dependentes predefinidos e múltiplos
Mas digamos que você deseja incluir o jQuery e o jQuery UI Sortable na lista de scripts padrão incluídos no WordPress e deseja que seu script dependa deles? Fácil, basta incluir os dois primeiros scripts usando os identificadores predefinidos definidos no WordPress e, para o seu script, fornecer um terceiro parâmetro ao
wp_enqueue_script()
qual é uma matriz dos identificadores de script usados por cada script, da seguinte forma:Scripts em um plug-in
E se você quiser fazer isso em um plug-in? Use a
plugins_url()
função para especificar o URL do seu arquivo Javascript:Versionando seus scripts
Observe também que, acima , demos um número de versão ao nosso plug-in e passamos como um quarto parâmetro para
wp_enqueue_script()
. O número da versão é gerado na fonte como argumento de consulta no URL para script e serve para forçar o navegador a baixar novamente o arquivo em cache, se a versão foi alterada.Carregar scripts apenas nas páginas onde for necessário
A 1ª regra do Desempenho da Web diz Minimizar solicitações HTTP; portanto, sempre que possível, você deve limitar os scripts a carregar apenas quando necessário. Por exemplo, se você precisar apenas do seu script no administrador, limite-o às páginas de administrador usando o
admin_enqueue_scripts
gancho:Carregar seus scripts no rodapé
Se o seu script é um daqueles que precisam ser carregados no rodapé, existe um quinto parâmetro
wp_enqueue_script()
que diz ao WordPress para atrasá-lo e colocá-lo no rodapé (assumindo que o tema não tenha se comportado mal e que de fato chama o gancho wp_footer como todos bons temas para WordPress ):Controle de granulação mais fina
Se você precisar de um controle mais refinado do que o Ozh, tenha um ótimo artigo intitulado Como: Carregar Javascript com o Plug-in do WordPress que detalha mais.
Desabilitando scripts para obter controle
Justin Tadlock tem um bom artigo intitulado Como desativar scripts e estilos , caso você queira:
Passando valores de PHP para JS com
wp_localize_script()
Em seu blog, Vladimir Prelovac tem um ótimo artigo intitulado Práticas recomendadas para adicionar código JavaScript aos plug-ins do WordPress, onde ele discute o uso
wp_localize_script()
para permitir que você defina o valor das variáveis no PHP do servidor para serem usadas posteriormente no Javascript do cliente.Controle de grão realmente fino com
wp_print_scripts()
E, finalmente, se você precisar de um controle realmente refinado, poderá analisar
wp_print_scripts()
como discutido no Beer Planet em uma postagem intitulada Como incluir CSS e JavaScript condicionalmente e somente quando necessário pelas postagens .Epiloque
Para isso, é recomendável incluir os arquivos Javascript no WordPress. Se eu perdi alguma coisa (o que eu provavelmente tenho), informe-me nos comentários para que eu possa adicionar uma atualização para futuros viajantes.
fonte
admin_init
vez de pediris_admin()
. Remova o parâmetro version se você usar o CDN do Google; caso contrário, o cache do navegador conterá duas versões: uma sem a string de consulta de outros sites e a sua.Para complementar a maravilhosa ilustração do Mikes sobre o uso de enfileiramentos, gostaria de salientar que os scripts incluídos como dependências não precisam ser enfileirados ...
Usarei o exemplo sob os scripts em um cabeçalho de plug-in na resposta de Mike.
Isso pode ser aparado para ler ..
Quando você define dependências, o WordPress as encontra e as coloca prontas para o seu script, para que você não precise fazer chamadas independentes para esses scripts.
Além disso, alguns de vocês podem estar se perguntando se a configuração de várias dependências pode causar a saída de scripts na ordem errada, deixe-me dar um exemplo
Se o script dois dependesse do script três (ou seja, o script três deveria ser carregado primeiro), isso não importaria, o WordPress determinará as prioridades de enfileiramento para esses scripts e as exibirá na ordem correta, em suma, tudo será resolvido automaticamente. para você pelo WordPress.
fonte
init
não é o lugar apropriado para despachar o enfileiramento.Para pequenos pedaços de scripts, que talvez você não queira incluir em um arquivo separado, por exemplo, porque eles são gerados dinamicamente, o WordPress 4.5 e outras ofertas
wp_add_inline_script
. Essa função basicamente trava o script para outro script.Digamos, por exemplo, que você esteja desenvolvendo um tema e que seu cliente possa inserir seus próprios scripts (como Google Analytics ou AddThis) na página de opções. Você pode então usar
wp_add_inline_script
para travar esse script no seu arquivo js principal (digamosmainjs
) assim:fonte
Minha maneira preferida é obter um bom desempenho; portanto, em vez de usar,
wp_enqueue_script
eu uso o HEREDOC com a API Fetch para carregar tudo de forma assíncrona em paralelo:E insira-os na cabeça, às vezes junto com estilos como este:
Resultando em cascata que se parece com isso, carregando tudo de uma vez, mas controlando a ordem de execução:
Nota: Isso requer o uso da API de busca, que não está disponível em todos os navegadores.
fonte