Estou fazendo isso agora com o seguinte código:
function uw_load_scripts() {
// De-register the built in jQuery
wp_deregister_script('jquery');
// Register the CDN version
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
// Load it in your theme
wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'uw_load_scripts' );
Isso funciona, mas devo fazer isso para todos, assim ou para todos, exceto o administrador (para que o back-end use a versão do WordPress?):
if (function_exists('load_my_scripts')) {
function load_my_scripts() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
wp_enqueue_script('jquery');
}
}
}
add_action('init', 'load_my_scripts');
Esta versão não funciona, na verdade, recebo a versão jQuery do WordPress e não a do Google.
Portanto, devo cancelar o registro do jQuery que está incluído no WordPress?
Além disso, como adiciono meus próprios scripts (scripts slider, modernizr e meu próprio custom.js) da maneira correta? Acho que devo fazer isso através do functions.php também e não no cabeçalho como estou fazendo agora, mas não tenho certeza de como faria isso.
wp_enqueue_script()
chamadas.$in_footer
parâmetro como true na sua chamada parawp_enqueue_script()
.Espero que isso ajude, procure o codex para
wp_enqueue_scripts
obter mais informações.init
para enfileirar . Usewp_enqueue_scripts
para coisas de front-end eadmin_enqueue_scripts
para o lado do administrador. Você pode usarinit
para registrar scripts.wp_enqueue_scripts
é acionado apenas no front-end (e não na página de login) - para que você não precise verificaris_admin()
.A menos que você tenha uma razão específica para fazer o contrário, gostaria de sugerir registrar e filas de scripts usando
functions.php
para temas ou em uma outra forma plug-in. Você simplesmente coloca:Se o objetivo é enfileirar um script quando um código de acesso é usado, convém usar
wp_enqueue_script
o retorno de chamada de código de acesso para enfileirá-lo somente quando necessário (isso será impresso no rodapé desde 3.3 ).Você não deve registrar novamente o jQuery existente no lado do administrador. Você pode quebrar algo: D.
Os plug-ins não devem registrar novamente o jQuery existente.
Você deve avaliar os prós e os contras de registrar novamente o jQuery. Por exemplo, pode quebrar alguns plug-ins se você registrar uma versão antiga (talvez não agora, mas no futuro ...)
fonte
Aviso justo: cancelar o registro da versão empacotada do jQuery do WP em favor de sua preferência pode causar problemas, especialmente se você não tomar cuidado extra para garantir que altera a versão para a qual está apontando sempre que o WP atualiza sua versão. Isso vale duplamente para plug-ins, que geralmente (ou frequentemente devem, pelo menos) escrevem seus plugins para obter compatibilidade máxima com a versão WP do jQuery.
Dito isto, sua primeira versão está correta - está conectada a
wp_enqueue_scripts
. Sua segunda função está conectada ainit
, e pode ser por isso que não está funcionando corretamente.Adicione seus próprios scripts de maneira semelhante:
Estou assumindo aqui que você está carregando scripts de um
js
diretório em seu diretório de temas atual; altere o parâmetro URI se isso não for verdade. O terceiro parâmetroarray( 'jquery' )
diz que issobbg-scripts
dependejquery
e, portanto, deve ser carregado posteriormente. Consulte https://codex.wordpress.org/Function_Reference/wp_enqueue_script para obter mais detalhes.fonte
Isso não vai fazer nada ... Eu suspeito que você quer dizer
Seu exemplo carregará a função load_my_scripts apenas se ela já existir (o que não existe, e se não existir, isso criaria um erro)
fonte
Se, por motivos de desempenho, você desejar carregar o jquery e outros arquivos js principais de uma CDN, verifique se está carregando a mesma versão para evitar que coisas desagradáveis ocorram nas funções principais e do plug-in. Como isso:
fonte
Depois de verificar todos os métodos diferentes para carregar o jquery (não apenas neste post), percebi que nenhum deles faz tudo isso:
Existem muitas versões alternativas fazendo algumas delas na lista, mas não todas, então escrevi minha versão penteando e modificando alguns dos métodos já disponíveis. Aqui está:
Para economizar largura de banda e não executar ping no Google sempre que a página é recarregada, ele se lembra se o CDN do Google está on-line ou não por 5 minutos usando a API do Wordpress Transient.
fonte