Una mejor solución:
add_action( 'wp_default_scripts', 'move_jquery_into_footer' );
function move_jquery_into_footer( $wp_scripts ) {
if( is_admin() ) {
return;
}
$wp_scripts->add_data( 'jquery', 'group', 1 );
$wp_scripts->add_data( 'jquery-core', 'group', 1 );
$wp_scripts->add_data( 'jquery-migrate', 'group', 1 );
}
Me gusta esto porque lo cambia en el núcleo.
Acerca de no hacer esto al administrador:
Si los complementos agregan jquery en línea a wp_head, fallará cuando jquery no se cargue en ese momento, por lo que le sugiero que evite eso hasta que tenga millones editando su sitio e intente optimizar el rendimiento de su administrador. Esto también es válido para la interfaz, por lo que debe tener cuidado con los temas o los complementos mal codificados que suponen jQuery en la cabeza mediante el uso del código jQuery en línea.
Sobre esto no funciona:
Debe tener en cuenta que si cualquier otra secuencia de comandos se carga en la cabecera que tiene jQuery en sus dependencias, también hará que jQuery se cargue en la cabecera justo antes de la misma. Y esto es bueno y esperado, la razón por la que existe el sistema wp_enqueue.