WordPress: Verhindere, dass CF7 auf allen Seiten geladen wird

Inhalt

Standardmäßig lädt CF7 die main css und js auf jeder Seite. Dies ist ungüns­tig und führt zu unnö­ti­gen Script Junk. Wir wol­len dies ver­hin­dern indem wir dafür sor­gen, dass die Skripte nur auf den gewünsch­ten Seiten erscheinen.

Mit fol­gen­dem Script wer­den alle CF7 Skripte nicht geladen:

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );

Function.php Script

Hier legen wir die Seiten fest. Alternativ kann man auch die Page ID verwenden:

add_action( 'wp_head', 'contactformcss', 90 );

function contactformcss () {
    if ( is_page( array( 'kontakt', 'kuechenplanung-zu-hause', 'kuechenplanung-im-kuechenstudio', 'kuechenkonfigurator', 'service-anfragen', 'kundenrezension', 'ausbildung', 'initiativbewerbung') ) ) { 
    ?>
    <link rel="stylesheet" type="text/css" href="/wp-content/themes/Hello%20MEDA/contact-form-7/c7.css"/>
    <?php
    }
}

Falls CF7 für bestimm­te Post-Seiten (ACF / CPT) gela­den wer­den sol­len, dann nut­zen wir die­ses Script:

add_action( 'wp_head', 'contactformcpt', 90 );
function contactformcpt () {
    if ( is_single() && 'stellenangebote' == get_post_type() ) { 
    ?>
    <link rel="stylesheet" type="text/css" href="/wp-content/themes/Hello%20MEDA/contact-form-7/c7.css"/>
    <?php
    }
}