# wp_enqueue (Scripts e Styles)

wp_enqueue WordPress é o nome genérico para as funções nativas wp_enqueue_script() e wp_enqueue_style() — usadas para registrar e carregar arquivos JavaScript e CSS de forma organizada e otimizada em temas e plugins. Em vez de chamar <script> e <link> direto no HTML, você usa essas funções, e o WordPress se encarrega de carregar os arquivos no momento certo, evitar duplicações, gerenciar dependências e aplicar versionamento para invalidar cache. É padrão obrigatório em qualquer código WordPress profissional.

## O que é wp_enqueue

wp_enqueue é a forma correta de carregar js css wordpress segundo as guidelines oficiais. O WordPress mantém uma fila interna de scripts e styles a serem incluídos na página renderizada; quando você chama wp_enqueue_script ou wp_enqueue_style, o arquivo entra nessa fila e é renderizado no HTML pelo motor do WordPress no momento adequado.

O sistema existe desde o WordPress 2.6 (2008) e resolve um problema clássico: temas e plugins escritos com tags <script> soltas no header.php ou em hooks aleatórios geram conflitos. Duas plugins carregam jQuery em versões diferentes, ou o mesmo arquivo é incluído duas vezes, ou o JavaScript de um plugin depende de outro que ainda não foi carregado. Sem orquestração, vira caos.

wp_enqueue elimina esses problemas com três mecanismos: registro centralizado (todos os arquivos passam pela fila), gestão de dependências (você declara que seu script precisa de jQuery e o WordPress garante a ordem), e versionamento automático (o WordPress adiciona ?ver=X.X.X na URL para forçar invalidação de cache do navegador quando o tema atualiza).

Tecnicamente, wp_enqueue funciona dentro do hook wp_enqueue_scripts (frontend) ou admin_enqueue_scripts (admin). Você registra uma função PHP no hook, e dentro dela chama wp_enqueue_script e wp_enqueue_style com os parâmetros corretos. O WordPress executa sua função no momento certo do ciclo de renderização.

## Como usar wp_enqueue_script

A assinatura completa do wp_enqueue_script aceita até cinco parâmetros: handle (identificador único), src (URL do arquivo), deps (array de dependências), ver (versão), in_footer (true para carregar no final do body em vez do head).

Exemplo prático: *wp_enqueue_script('meu-script', get_template_directory_uri() . '/js/meu-script.js', array('jquery'), '1.0.0', true);*. Isso registra um script com handle único, aponta para o arquivo no diretório do tema, declara dependência de jQuery (WordPress carrega jQuery automaticamente antes), define versão 1.0.0 (gera ?ver=1.0.0 na URL) e força carregamento no footer (true no último parâmetro).

O WordPress traz dezenas de scripts já registrados — jQuery, jQuery UI, Backbone, Underscore, React (no admin), wp-api. Você não precisa carregar esses; basta declarar como dependência e o WP cuida do resto. Para listar todos, basta consultar o Codex (Default Scripts Included and Registered with WordPress).

Para passar dados PHP para JavaScript, use *wp_localize_script()*. A função expõe variáveis JavaScript para o script enfileirado. Útil para passar URL da REST API, nonces, configurações dinâmicas. Combinado com [functions.php](https://full.services/glossario/functions-php/) bem organizado, é o padrão profissional.

## Como usar wp_enqueue_style

O wp_enqueue_style segue lógica equivalente. Cinco parâmetros: handle, src, deps, ver, media ("all", "screen", "print"). Exemplo: *wp_enqueue_style('meu-style', get_template_directory_uri() . '/css/meu-style.css', array(), '1.0.0', 'all');*.

O parâmetro media é menos usado mas útil em casos específicos. "print" carrega o CSS apenas quando o usuário imprime a página — ideal para estilos específicos de impressão sem afetar a renderização normal. "screen" é o padrão visual; "all" cobre todos os casos. Para a maioria dos projetos, deixar como "all" resolve.

Em child themes, o padrão recomendado pela documentação oficial é enfileirar primeiro o CSS do parent theme e depois o do child. Isso garante que os estilos do child sobrescrevam os do parent quando há conflito. *wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css'); wp_enqueue_style('child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style'));*.

Para Google Fonts e outros recursos externos, use a URL completa em vez de get_template_directory_uri. *wp_enqueue_style('google-fonts', 'https://fonts.googleapis.com/css2?family=Inter');*. O WordPress entende URLs absolutas e renderiza o <link> corretamente. Combinado com [tema WordPress](https://full.services/glossario/tema-wordpress/) bem estruturado, é a base de qualquer projeto sério.

## Boas práticas de carregamento

A primeira boa prática é nunca enfileirar scripts e styles fora do hook adequado. Chamar wp_enqueue_script no functions.php sem hook funciona em alguns casos, mas pode causar timing errado e bugs intermitentes. Sempre use add_action('wp_enqueue_scripts', 'sua_funcao').

A segunda é usar handles únicos e descritivos. "meu-tema-main", "plugin-x-admin-config", "acme-checkout-validator". Handles genéricos como "main" ou "script" colidem com outros temas e plugins, gerando comportamento imprevisível. Prefixe sempre com nome do tema ou plugin.

A terceira é carregar o JavaScript no footer sempre que possível (último parâmetro true). Scripts no head bloqueiam o render da página até o download terminar; scripts no footer permitem que o HTML carregue primeiro e o JavaScript depois. Em métricas de Core Web Vitals, faz diferença mensurável de LCP.

A quarta é só carregar o que cada página realmente precisa. Em vez de enfileirar todos os scripts em todas as páginas, use lógica condicional: *if (is_singular('produto')) { wp_enqueue_script('produto-script'); }*. Carregar JavaScript de checkout em página de blog desperdiça banda do usuário e atrapalha performance.

A quinta é versionar corretamente. Use número de versão real do plugin/tema, ou um filemtime() para forçar invalidação de cache quando o arquivo é editado. Sites em produção que esquecem versionamento ficam com usuários presos em cache antigo após cada atualização — bug clássico que se evita com 1 linha de código.

Para garantir que o tema, os plugins e o WordPress como um todo carreguem JavaScript e CSS de forma otimizada, com defer, async, lazy loading de assets pesados e [minificação](https://full.services/glossario/minificacao/) automática, a FULL Services entrega o **Perfmatter** licenciado e configurado dentro do painel — peça-chave para tunar wp_enqueue além do que o tema entrega de fábrica. É a forma de transformar carregamento padrão em carregamento profissional, com Core Web Vitals consistentemente verdes em produção.

**Também conhecido como:** enqueue scripts, enqueue styles

## Termos relacionados

- [functions.php](https://full.services/glossario/functions-php/)
- [Tema WordPress](https://full.services/glossario/tema-wordpress/)
- [Performance WordPress](https://full.services/glossario/performance-wordpress/)
- [Minificação](https://full.services/glossario/minificacao/)

---

Glossário WordPress da FULL Services: [wp_enqueue (Scripts e Styles)](https://full.services/glossario/wp-enqueue/)
