• 08-04-2024, 23:49:36
    #1
    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.
  • 09-04-2024, 01:10:28
    #2
    Functions.php için wp_dequeue_style kullanarak de bunların yüklenmesi engellenebiliyor. Bugün bunlarla uğraşırken üstüne bu konu açıldı. Eklentilere ait bütün stil dosyalarını dequeue ile kaldırdım ama wp_dequeue_script ile js dosyalarını bir türlü engelleyemedim. Betik numarası aralığına göre numara eklemek gerekiyormuş. Denediğim numaraların hiçbiri js dosyalarında işe yaramadı.

    Bu arada neredeyse bütün eklentilerin js ve css dosyaları her sayfada yükleniyor.
  • 09-04-2024, 02:15:01
    #3
    Protex adlı üyeden alıntı: mesajı görüntüle
    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.
  • 09-04-2024, 03:17:20
    #4
    Mintik adlı üyeden alıntı: mesajı görüntüle
    Functions.php için wp_dequeue_style kullanarak de bunların yüklenmesi engellenebiliyor. Bugün bunlarla uğraşırken üstüne bu konu açıldı. Eklentilere ait bütün stil dosyalarını dequeue ile kaldırdım ama wp_dequeue_script ile js dosyalarını bir türlü engelleyemedim. Betik numarası aralığına göre numara eklemek gerekiyormuş. Denediğim numaraların hiçbiri js dosyalarında işe yaramadı.

    Bu arada neredeyse bütün eklentilerin js ve css dosyaları her sayfada yükleniyor.
    dequeue ilede olabilir tabiki. aynı şekilde jsler de dequeue olur aslında, ismini tam yazmak lazım. Diğer eklentilerde dediğiniz gibi her sayfada yükleniyor gerekli gereksiz. kötü bir durum. Ben genellikle çoğuna ID veriyorum, tertemiz oluyor.

    selimkoc adlı üyeden alıntı: mesajı görüntüle
    bu şekilde yapmayın, contact form 7 plugin güncellemesinde yaptığınız değişiklik gider. güncellemezseniz güvenlik problemi.

    orjinal destek sayfası:
    https://contactform7.com/loading-jav...-is-necessary/

    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.
    Hiçbir güncelleme vs gitmeyecek veya ertelenmeyecektir. upgrade.php yi incelerseniz, bunun bizim kodla alakalı olmadığını görürsünüz, insanları yanlış yönlendirmeyin. + Template değiştirmek istemediğiniz sürece, plugini güncellemenizede gerek yok. güncellemelerde genellikle style veya farklı tags ekliyorlar. senede 1 kez güncellerseniz kafi. Herzaman güncellemek istiyorsanızda , sonrasında bizim kodlar gider, tekrar eklemeniz gerekir.
  • 09-04-2024, 11:46:08
    #5
    Protex adlı üyeden alıntı: mesajı görüntüle
    dequeue ilede olabilir tabiki. aynı şekilde jsler de dequeue olur aslında, ismini tam yazmak lazım. Diğer eklentilerde dediğiniz gibi her sayfada yükleniyor gerekli gereksiz. kötü bir durum. Ben genellikle çoğuna ID veriyorum, tertemiz oluyor.



    Hiçbir güncelleme vs gitmeyecek veya ertelenmeyecektir. upgrade.php yi incelerseniz, bunun bizim kodla alakalı olmadığını görürsünüz, insanları yanlış yönlendirmeyin. + Template değiştirmek istemediğiniz sürece, plugini güncellemenizede gerek yok. güncellemelerde genellikle style veya farklı tags ekliyorlar. senede 1 kez güncellerseniz kafi. Herzaman güncellemek istiyorsanızda , sonrasında bizim kodlar gider, tekrar eklemeniz gerekir.
    Üste bunu:
    “Hiçbir güncelleme vs gitmeyecek veya ertelenmeyecektir.”

    Alta bunu yazmışsın:
    “Herzaman güncellemek istiyorsanızda , sonrasında bizim kodlar gider, tekrar eklemeniz gerekir.”

    ilk yazdığın mesajda da aklınca dalga geçmişsin, kodlar uzaya mı gidiyor diye.

    ego yapmana gerek yok, hiçbir zaman pluginin koduna müdahale edilmez, güncellemede gider o değişiklikler.

    sayfa id ile yapman da sağlıklı değil, yeni bir iletişim formu eklendiğinde tekrar kod değiştirmek gerekir.
  • 09-04-2024, 13:16:27
    #6
    Kurumsal Üye
    Alternatif olarak Fluent Form kullanılmasını öneririm. https://wordpress.org/plugins/fluentform/
  • 09-04-2024, 14:33:49
    #7
    selimkoc adlı üyeden alıntı: mesajı görüntüle
    Üste bunu:
    “Hiçbir güncelleme vs gitmeyecek veya ertelenmeyecektir.”

    Alta bunu yazmışsın:
    “Herzaman güncellemek istiyorsanızda , sonrasında bizim kodlar gider, tekrar eklemeniz gerekir.”

    ilk yazdığın mesajda da aklınca dalga geçmişsin, kodlar uzaya mı gidiyor diye.

    ego yapmana gerek yok, hiçbir zaman pluginin koduna müdahale edilmez, güncellemede gider o değişiklikler.

    sayfa id ile yapman da sağlıklı değil, yeni bir iletişim formu eklendiğinde tekrar kod değiştirmek gerekir.
    Bunun dediğini yaparsanız siteniz plugin css çöplüğüne döner, siteniz kağnı gibi olur. Müdahale edilmezmişte falanmışta. Kopyala yapıştır yapan bilgisiz asalak gibi yaşayan chatgpt cilerden bıktık usandık artık.
    Plugin'leri optimize etmek için kodlarına herzaman müdahale ediniz arkadaşlar, hiçbir sorun yok.
    Yeni form eklerseniz de 64 ün yanına 1 tane daha id eklersiniz olur biter:

    if ( $page_id == 64 || $page_id == 75 ) { }
  • 24-05-2024, 15:30:56
    #8
    yilmaz70 adlı üyeden alıntı: mesajı görüntüle
    Alternatif olarak Fluent Form kullanılmasını öneririm. https://wordpress.org/plugins/fluentform/
    Öneri için Tşk.
    Verdiğiniz eklenti css lerini heryere atıyormu acaba, öğrenmek lazım denedinizmi hiç .
    Kendi css lerini form olmayan hersayfada çıkarmıyorsa kullanabilir elbet, contact form 7 gibi çıkarıyorsa problem.
  • 24-05-2024, 15:59:26
    #9
    elle id girmek yerine ;

    has_shortcode( $content, 'contact-form') ile detect edip daha dinamik bir if clouses kullanabilirsiniz.