Encaue Google CDN jQuery no rodapé

Estou tentando enqueuer jQuery do CDN do Google e tê-lo chamado no rodapé em vez do header do meu tema.

Aqui está o meu código:

wp_deregister_script('jquery'); wp_enqueue_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js", false, '1.10.2', true); 

Encontrei algumas soluções potenciais que não funcionam para mim, são:

1) Adicionando o seguinte às minhas funções.php:

 function ds_enqueue_jquery_in_footer( &$scripts ) { if ( ! is_admin() ) $scripts->add_data( 'jquery', 'group', 1 ); } add_action( 'wp_default_scripts', 'ds_enqueue_jquery_in_footer' ); 

2) Chamando wp_enqueue_scripts como assim (como estou fazendo acima, realmente):

 wp_enqueue_script('jquery','/wp-includes/js/jquery/jquery.js','','',true); 

Não importa o que tentei, jQuery é chamado no header. Alguma sugestão?

Solutions Collecting From Web of "Encaue Google CDN jQuery no rodapé"

O gancho direito

O wp_default_scripts -hook só é executado no administrador, como é chamado por wp_default_scripts() em ~/wp-admin/load-scripts.php onde está ligado no final do arquivo .

Então, para mover jQuery em público para o rodapé, você precisa usar um gancho diferente: wp_enqueue_scripts , que é executado apenas no público. Não é necessário verificar o administrador.

 < ?php defined( 'ABSPATH' ) or exit; /* Plugin Name: jQuery to the footer! */ add_action( 'wp_enqueue_scripts', 'wcmScriptToFooter', PHP_INT_MAX -1 ); function wcmScriptToFooter() { $GLOBALS['wp_scripts']->add_data( 'jquery', 'group', 1 ); } 

Estou usando PHP_INT_MAX , o máximo do seu sistema / servidor / SO é capaz de. Torna se certo de que sua ação desencadeia o último para garantir que todos os outros ganchos tenham sido executados anteriormente. Ainda assim, nada é 100% seguro quando se trata de prioridades, mas você tem uma chance muito justa de que irá funcionar.

Colocando o script em fila

Sobre o uso do $_SERVER superglobal: você deve ficar de volta ao usar isso. As interfaces de linha de comando (curto: CLI-like Git / GNU Bash, Shell, etc.) não poderão recuperar dados a partir daí. Isso significa que todos os ambientes de teste automatizados, como PHPUnit ou SimpleTest, falharão, assim como todos os trabalhos cronjobs ou runwhen, não poderão obter nenhum dado disso.

O bom é que, em todos os principais navegadores em todas as principais versões, os URBL relativos funcionam sem esquemas. Isso significa que //code.jquery.com/jquery-latest.min.js sempre lhe dará a versão mais recente.

 function wpse124773_jQueryFromCDN() { wp_enqueue_script( 'jquery', '//code.jquery.com/jquery-latest.min.js', array(), 0, true ); } 

A versão correta

Se você ficar com a versão latest recente “oficial”, o WP pode sufocar. O motivo é simples: o Core não usa constantemente a versão mais recente. Agora precisamos garantir que estamos sempre usando a versão que o WordPress atualmente usa. Para conseguir isso, vamos perguntar ao WP qual versão é a atual. Isso significa que nosso script sempre ficará em linha e atualizado com o núcleo:

 function wpse124773_jQueryFromCDN() { $version = $GLOBALS['wp_scripts']->registered['jquery']->ver; wp_enqueue_script( 'jquery', "//ajax.googleapis.com/ajax/libs/jquery/{$version}/jquery.min.js", $GLOBALS['wp_scripts']->registered['jquery']->deps, $version, true ); }