Contact form 7 je perfektný plugin na vytvorenie kontaktných formulárov pre WordPress. Má integráciu reCaptcha. Chybou však je, že CF7 vkladá reCaptcha na každú stránku, čo je zbytočné. Potrebujeme mať ochranu pred botmi iba na stránkach s formulárom.
Keďže kontaktné formuláre sú vkladané pomocou shortcode, môžme využiť funkciu WordPress has_shortcode().
add_action( 'wp_print_scripts', function () {
// nastavenie globálnej premennej $post
global $post;
// kontrola, či objekt je triedy WP_Post a ak neobsahuje shortkód CF7, deregistrácia skriptov reCaptcha
if ( is_a( $post, 'WP_Post' ) && !has_shortcode( $post->post_content, 'contact-form-7' ) ) {
wp_dequeue_script( 'google-recaptcha' );
wp_dequeue_script( 'wpcf7-recaptcha' );
}
} );Tento snippet môžte pridať do functions.php, ale správne je vytvoriť si špecifický plugin pre túto úpravu. Viac info nájdete tu.

