Merhaba arkadaşlar, sitesini hızlandırdığım bazı wp firma ve kişisel sitelerde contact-form-7
kullananların bir noktayı atlayarak sitelerini yavaşlattığını farkediyorum.
Misal, bir sayfada iletişim için contact-form-7 kullandıysanız, bu eklenti kendi css ve js lerini form olmayan tüm sayfalarda yayınlayarak sitenizi gereksiz yere ağırlaştırıyor.
contact-form-7'ye ait css ve js lerin sadece form sayfasında çıkmasını ve diğer bütün sayfalardan kalkmasını isterseniz aşağıdaki 2 satırlık betiği eklemeniz gerekir:
contact-form-7/includes/controller.php' ye:
$page_id = get_queried_object_id();
if ( $page_id == 64 ) { }
buradaki 64 numarası form olan sayfanızın id numarasıdır, kendinizinki ile değiştiriniz.
Bu sayede bu eklentiye ait css ve js ler sadece form sayfasında yüklenecek, diğer sayfalarınızda boş yere çıkarak sitenizi yavaşlatmayacaktır.
Diğer işe yaramayan veya özel tüm eklentileriniz için bu mantığı onlardada kullanabilirsiniz.
Kolay gelsin.
bu şekilde yapmayın, contact form 7 plugin güncellemesinde yaptığınız değişiklik gider. güncellemezseniz güvenlik problemi.
ek bir plugin ile yapabilirsiniz:
https://wordpress.org/plugins/remove...ontact-form-7/
orjinal destek sayfası:
https://contactform7.com/loading-jav...-is-necessary/
Ek pluginsiz yapmak istiyorsanız, yapmanız gerekenler:
functions.php ye şu satırları ekleyin:
if ( !is_singular() && get_the_ID() != 65 ) {
add_filter( 'wpcf7_load_js', '__return_false' ); add_filter( 'wpcf7_load_css', '__return_false' );
}
ama sayfa id belirtmeden otomatik de yapabilirsiniz, yine functions.php ye yukardaki kod yerine aşağıdaki kodu ekleyebilirsiniz:
function r10_page_has_contact_form() {
global $post;
if ( is_singular() ) {
$content = $post->post_content;
if ( has_shortcode( $content, 'contact-form-7' ) ) {
return true;
}
}
return false;
}
if ( !r10_page_has_contact_form() ) {
add_filter( 'wpcf7_load_js', '__return_false' ); add_filter( 'wpcf7_load_css', '__return_false' );
}
ayrıca eğer temanız otomatik güncelleniyorsa, bu kodu child temanıza eklemeniz gerekiyor, güncellemede silinmemesi için.