Eu tenho isso no meu functions.php
arquivo e não consigo carregar o jQuery no rodapé. O includes
arquivo carrega no rodapé bem, no entanto. O que mais eu preciso fazer?
function starter_scripts() {
wp_enqueue_style( 'starter-style', get_stylesheet_uri() );
wp_enqueue_script( 'jquery', '', '', '', true );
wp_enqueue_script( 'includes', get_template_directory_uri() . '/js/min/includes.min.js', '', '', true );
}
add_action( 'wp_enqueue_scripts', 'starter_scripts' );
jquery
wp-enqueue-script
Desi
fonte
fonte
defer
de suas tags de script em vez disso: matthewhorne.me/defer-async-wordpress-scriptsRespostas:
Para fazer isso, você primeiro precisará cancelar o registro do seu script jQuery e depois se registrar novamente. Se você usa o jQuery vem com o WordPress, a seguir é a função que você está procurando.
Se você usa a versão hospedada em CDN do Google do jQuery, avise-me que modificarei este código para o URL da CDN do Google.
fonte
wp_enqueue_scripts
é usado apenas no final da frente, enquantoadmin_enqueue_scripts
é usado para back-endAqui está outra opção que evita a necessidade de cancelar o registro e registrar novamente:
Esta solução imita o núcleo do WordPress , definindo
group
como1
, que é como o WordPress determina se um script deve estar no rodapé ou não (não estou ciente do motivo1
, como @jgraup observou nos comentários, parece um pouco arbitrário).fonte
wp_register_script
usosadd_data( $handle, 'group', 1 )
para mover scripts para o rodapé. core.trac.wordpress.org/browser/tags/4.5/src/wp-includes/… - Você poderia expandir o porquê disso? Olhando para o seu código, 'group' parece um pouco arbitrário. Mas eu posso ver em core.trac.wordpress.org/browser/tags/4.5/src/wp-includes/… como é usado em WP_Scripts->do_item
mais tarde. De qualquer maneira, essa parece ser a resposta menos destrutiva.Uma solução melhor:
Por que é melhor que a resposta aceita IMO
$footer = true
.Sobre não fazer isso com o administrador
Se os plug-ins adicionarem o jquery embutido ao wp_head, ele falhará quando o jquery não for carregado nesse momento. Portanto, sugiro que você evite isso até ter milhões editando o site e tentando otimizar o desempenho do administrador. Isso também é válido para o front-end, portanto, você deve ficar atento a temas ou plug-ins com códigos incorretos que assumem jquery na cabeça usando o código jQuery embutido. O WP e os plugins registram outros scripts na cabeça do administrador com o jquery in deps, para que não funcione de qualquer maneira, eu acho.
Sobre isso não está funcionando
Você precisa estar ciente de que, se qualquer outro script for carregado no cabeçalho que possui o jQuery em suas dependências, ele também fará o jQuery carregar no cabeçote antes de si. E isso é bom e esperado, o motivo pelo qual o sistema wp_enqueue existe. Isso significa que você aprenderá em breve se usar alguns plugins que um deles exigirá causar jquery na cabeça. É o padrão para scripts enfileirados, infelizmente.
Solução Radical
Eu acho que ele irá travar qualquer JS embutido que assume jquery, mas isso deve ser raro. Isso forçará todos os scripts para o rodapé, independentemente de como eles estão na fila.
fonte
Eu desenvolvi um plugin para esse problema específico. Este plugin não mexe com o jQuery do WordPress, pois é carregado apenas no front-end. Veja: jQuery Manager para WordPress
Quase todo mundo usa o identificador incorreto
O WordPress realmente usa o identificador jquery-core, não o jquery:
A maneira correta de fazer isso
No meu exemplo abaixo, uso a CDN oficial do jQuery em https://code.jquery.com . Também uso script_loader_tag para poder adicionar alguns atributos da CDN.
Você pode usar o seguinte código:
fonte
fonte
Ei, apenas altere seu código para curtir isso
eu acho que funciona bem
adicione estas linhas ao seu arquivo functions.php
então ele adiciona script no rodapé
fonte
remove_action
/add_action
se quiser fazer dessa maneira.