概要
wpcf7_recaptcha_sitekey
フィルタは、WordPress のプラグイン Contact Form 7 において reCAPTCHA のサイトキーを上書きするために使用されます。このフィルタを利用することで、特定の条件下で reCAPTCHA のサイトキーを変更したり、異なる環境(開発環境や本番環境)でのキー管理が簡単になります。
よく使われる機能
- 開発環境と本番環境での reCAPTCHA サイトキーの切り替え
- ユーザーのロールや特定の条件に基づくサイトキーの変更
- マルチサイト環境での特定サイトのサイトキー管理
- テスト用のキーを切り替えることで、デバッグ時の利便性向上
- 必要に応じて、特定のページやフォームで異なるキーの使用
- サイト全体のセキュリティ向上のためのキーローテーション
構文
add_filter('wpcf7_recaptcha_sitekey', 'custom_recaptcha_sitekey');
function custom_recaptcha_sitekey($site_key) {
return 'YOUR_NEW_SITE_KEY';
}
パラメータ
$site_key
: デフォルトの reCAPTCHA サイトキー (string)
戻り値
- 上書きされたサイトキー (string)
互換性
- Contact Form 7のバージョン: 5.0 以降
- WordPressのバージョン: 4.9 以降
サンプルコード
サンプルコード1
add_filter('wpcf7_recaptcha_sitekey', 'set_recaptcha_key_for_dev');
function set_recaptcha_key_for_dev($site_key) {
if (defined('WP_ENV') && WP_ENV === 'development') {
return 'DEV_SITE_KEY';
}
return $site_key;
}
このコードは、WordPress が開発環境で運用されている場合、dev用のサイトキーに上書きします。
引用元: https://www.example1.com
サンプルコード2
add_filter('wpcf7_recaptcha_sitekey', 'custom_recaptcha_key_by_user_role');
function custom_recaptcha_key_by_user_role($site_key) {
if (current_user_can('administrator')) {
return 'ADMIN_SITE_KEY';
}
return $site_key;
}
このコードは、管理者ユーザーの場合に特定のサイトキーを上書きします。
引用元: https://www.example2.com
サンプルコード3
add_filter('wpcf7_recaptcha_sitekey', 'set_multisite_recaptcha_key');
function set_multisite_recaptcha_key($site_key) {
$current_site = get_bloginfo('url');
if ($current_site === 'https://site1.com') {
return 'SITE1_SITE_KEY';
} elseif ($current_site === 'https://site2.com') {
return 'SITE2_SITE_KEY';
}
return $site_key;
}
このコードは、マルチサイト環境においてサイトごとに異なる reCAPTCHA サイトキーを設定します。
引用元: https://www.example3.com
サンプルコード4
add_filter('wpcf7_recaptcha_sitekey', 'dynamic_recaptcha_key');
function dynamic_recaptcha_key($site_key) {
if (is_page('contact')) {
return 'CONTACT_PAGE_SITE_KEY';
}
return $site_key;
}
このコードは、「contact」ページが表示されている場合に、特定のサイトキーに上書きします。
引用元: https://www.example4.com
サンプルコード5
add_filter('wpcf7_recaptcha_sitekey', 'set_recaptcha_key_with_env');
function set_recaptcha_key_with_env($site_key) {
$environment = getenv('WP_ENV');
if ($environment === 'production') {
return 'PROD_SITE_KEY';
} else {
return 'DEV_SITE_KEY';
}
}
このコードは、環境変数に基づいて、プロダクション環境と開発環境で異なるサイトキーを提供します。
引用元: https://www.example5.com
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |