WordPress’te JavaScript dosyalarını Footer’a taşımak

Google PageSpeed Insights’da WordPress sitemi kontrol ettiğimde, JavaScript dosyalarımı sitenin altına taşımam gerektiğine dair bir uyarı alıyorum. Bu işlemi nasıl gerçekleştirebilirim?

Facebook sayfamızdan konuyla ilgili soru bu şekilde.

WordPress

JavaScript dosyalarının Footer’da siteye dahil edilmesi performans açısından büyük önem taşımakta. Dolayısıyla Google’ın PageSpeed kontrolü gibi birçok kalite kontrol robotu bu yapıyı denetlemekte. Ancak kullanıcılar bu sorunu aşmak için yanlış bir adresleme olan header.php’ye gidip ilgili JavaScript dosyalarını aramakta.

İşte anahtar ipucu burada. WordPress JS dosyalarını header.php’de değil, function.php’de sitenize ekliyor.

Ne yapmalıyım?

İlk olarak WordPress’in wp_enqueue_script tanımını biraz detaylandıralım. Kullanım yapısı genel anlamda şu şekilde :

<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>

Kısaca sırasıyla işlenen aracın adını, dizinini, varsa diğer eklentilerle ilişkilerini, versiyonunu ve Footer’da yer alıp almamasını belirtiyoruz.

Function.php

Şimdi Function.php’yi açalım. Dosya içerisinde wp_enqueue_script diye arattığınızda aşağıdakine benzer yapılar göreceksinizdir.

wp_enqueue_script('bootstrapjs', get_template_directory_uri().'/js/bootstrap.min.js', array('jquery') );

Bu yapı temanıza ilgili dizindeki Bootstrap JavaScript dosyasını eklemekte. Ancak bunu </head>‘in üstüne yapmakta.

İlk işimiz array(‘jquery’) tanımını silmek olacak. Elimizde versiyon bilgisi de olmadığını varsayalım ve o kısmıda tırnakların içine bir şeyler yazmayarak boş bırakalım. Son olarak $in_footer tanımı için true değeri geçelim. Özetle üstteki wp-enqueue_script tanımını aşağıdaki gibi düzenleyelim.

wp_enqueue_script('bootstrapjs', get_template_directory_uri().'/js/bootstrap.min.js', false, '', true );

Şimdi dosyamızı kaydedip web sayfamızı kontrol edelim. Sizlerin de fark edebileceği gibi artık bootstrap.min.js <head> elemanını içerisinde değil, </body> nin hemen üstünde ekleniyor.

İşlem tamam.

Kapanış

Bu teknik sayesinde sadece JS dosyalarınızı değil, diğer tüm kalıp yapılarınızı Footer’a taşayabilirsiniz. Örneğin CSS dosyalarınızı aşağıya almak istiyorsanız wp_enqueue_style tanımı size yardımcı olacaktır. Aynı tekniği uygulayarak CSS dosyalarınızı da Footer’da tanımlanır hale getirebilirsiniz.

Bu da ilginizi çekebilir  WordPress Kullanıcılarına .htaccess İpuçları

İyi çalışmalar.



  • Merhaba “wp_enqueue_script” ile başlayan hiç bir şey bulamadım tema dosyalarında … Ama “wp_enqueue_style” yı buldum. dediklerini uygulayınca sitede her şey birbirine girdi.. Sitede tam 331 sorgu var ve hız testi çok düşük. Buna rağmen sitenin açılış hızı iyi gibi…

    • Temanızın CSS dosyalarını footer’a taşımanızı pek önermem. Sadece yapılabileceğini söylemekti amacım 🙂

  • Çetin

    Hocam benim temamda 8 adet js dosyası bulunuyor. Buddypress eklentisi falan yükleyince baya js dosyası oluyor. Sitemin tasarımı bozuluyor. Ne yapmalıyım ? Teşekkürler.