Daha iyi bir çözüm:
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 );
}
Neden daha iyi kabul edildi cevap IMO
- Başka bir şeyle uğraşabileceği daha sonraki bir aşamada değil, özünde değiştirir.
- Sürüm dizesi yerinde kaldı ve kaldırılmadı!
- Bir betiğin kaydını kaldırır ve yeniden kaydettirmez, ancak yalnızca betiğin kayıtlı olacağıyla aynı olan grup değerini ayarlar
$footer = true
.
Bunu yöneticiye yapmamak hakkında
Eklentiler wp_head'e satır içi jquery eklerse, jquery bu noktada yüklenmediğinde başarısız olur, bu yüzden sitenizi düzenleyen milyonlarca kişiyi düzenleyene ve performansı optimize etmeye çalışıncaya kadar bundan kaçmanızı öneririm. Bu, ön uç için de geçerlidir, bu nedenle satır içi jQuery kodunu kullanarak kötü kodlanmış temalara veya kafada jquery varsayan eklentilere dikkat etmelisiniz. WP ve eklentiler deposunda jquery ile diğer komut dosyalarını yönetici kafasına kaydediyor, bu yüzden yine de işe yaramayacağını düşünüyorum.
Bu konuda çalışmıyor
Başka bir betiğin, bağımlılıklarında jQuery olan kafasına yüklenmiş olması durumunda, jQuery'nin başından hemen önce kafasına yükleneceğini de bilmeniz gerekir. Ve bu iyi ve beklenen, wp_enqueue sisteminin var olmasının nedeni. Bu, birisinin kafaya atılması nedenini gerektirecek birkaç eklenti kullanırsanız yakında öğreneceğiniz anlamına gelir. Ne yazık ki, sıkıştırılmış komut dosyaları için varsayılan.
Radikal Çözüm
Sanırım jquery'yi varsayan tüm satır içi JS'leri frenleyeceğini ama bunun nadir olması gerektiğini düşünüyorum. Bu , nasıl yazıldığına bakılmaksızın tüm komut dosyalarını altbilgiye zorlar .
add_action( 'wp_enqueue_scripts', 'js_to_footer' );
function js_to_footer() {
remove_action( 'wp_head', 'wp_print_scripts' );
remove_action( 'wp_head', 'wp_print_head_scripts', 9 );
remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
}
defer
: yerine komut etiketlerine matthewhorne.me/defer-async-wordpress-scripts