概要
wpcf7_recaptcha_secret
フィルタは、Contact Form 7 プラグインで使用される Google reCAPTCHA のシークレットキーを上書きするために利用されます。このフィルタを使うことで、開発者は特定の環境や条件に応じてカスタムのシークレットキーを設定することができ、柔軟なフォーム処理を実現します。
よく使われる機能
- 環境別のシークレットキー設定(テスト環境と本番環境の使い分け)
- サードパーティ製のreCAPTCHAサービスとの連携
- 多数のサイトでのシークレットキーの一元管理
- 特定のフォームごとのカスタマイズ
- 二段階認証との統合
- ユーザー管理の強化
構文
add_filter( 'wpcf7_recaptcha_secret', 'your_custom_recaptcha_secret' );
パラメータ
$secret
: 既定のシークレットキー(文字列)
戻り値
- 上書き後のシークレットキー(文字列)
使用可能なプラグインのバージョン
- Contact Form 7 バージョン 5.0 以降
ワードプレスのバージョン
- WordPress バージョン 4.0 以降
サンプルコード
サンプルコード1: 環境によるシークレットキーの変更
このコードは、特定の環境で異なるシークレットキーを設定します。
add_filter( 'wpcf7_recaptcha_secret', function( $secret ) {
if ( defined('WP_ENV') && WP_ENV === 'development' ) {
return 'your-development-secret-key';
}
return $secret;
});
引用元: https://developer.wordpress.org/reference/hooks/wpcf7_recaptcha_secret/
サンプルコード2: 一元管理されたシークレットキーの読み込み
このコードは、設定ファイルからシークレットキーを読み込みます。
add_filter( 'wpcf7_recaptcha_secret', function( $secret ) {
return get_option('recaptcha_secret_key');
});
引用元: https://developer.wordpress.org/reference/hooks/wpcf7_recaptcha_secret/
サンプルコード3: 特定のフォームIDに基づくシークレットキーの変更
このコードは、特定のフォームIDが送信された場合にのみ、シークレットキーを変更します。
add_filter( 'wpcf7_recaptcha_secret', function( $secret, $form ) {
if ( $form->id() === 123 ) {
return 'special-secret-key-for-form-123';
}
return $secret;
}, 10, 2 );
引用元: https://developer.wordpress.org/reference/hooks/wpcf7_recaptcha_secret/
サンプルコード4: 自動テスト用シークレットキーの設定
このコードは、自動テストの際に使用するシークレットキーを設定します。
add_filter( 'wpcf7_recaptcha_secret', function( $secret ) {
if ( defined('AUTOTEST') ) {
return 'automated-test-secret-key';
}
return $secret;
});
引用元: https://developer.wordpress.org/reference/hooks/wpcf7_recaptcha_secret/
サンプルコード5: サイト全体でのシークレットキーの一元管理
このコードは、マルチサイト環境においてサイト全体で同じシークレットキーを使用する例です。
add_filter( 'wpcf7_recaptcha_secret', function( $secret ) {
return 'global-secret-key-for-all-sites';
});
引用元: https://developer.wordpress.org/reference/hooks/wpcf7_recaptcha_secret/
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |