概要
wpcf7_init
は、WordPressプラグイン「Contact Form 7」が初期化される際に実行されるフックです。このフックは、Contact Form 7の設定やカスタマイズを行う際に非常に便利です。例えば、カスタムバリデーションルールの追加やショートコードの登録、フォームのフィールドの変更、他のプラグインとの統合、JavaScriptやCSSの追加、特定の条件に基づく設定の変更などに使用されます。
構文
do_action( 'wpcf7_init' );
パラメータ
wpcf7_init
アクションにはパラメータはありません。
戻り値
戻り値はありません。
使用可能なバージョン
- Contact Form 7バージョン: 5.0以上
- WordPressバージョン: 5.0以上
サンプルコード
1. カスタムバリデーションの追加
このサンプルコードは、Contact Form 7にカスタムバリデーションルールを追加するものです。特定の形式のメールアドレスを検証します。
add_action('wpcf7_init', 'custom_email_validation');
function custom_email_validation() {
wpcf7_add_validator('custom-email', function($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
});
}
引用元: https://contactform7.com/validation/
2. ショートコードの追加
このサンプルコードでは、カスタムショートコードをContact Form 7に追加します。フォーム内で利用可能になります。
add_action('wpcf7_init', 'add_custom_shortcode');
function add_custom_shortcode() {
wpcf7_add_shortcode('customcode', 'custom_shortcode_function');
}
function custom_shortcode_function($atts) {
return 'This is a custom shortcode!';
}
引用元: https://contactform7.com/shortcodes/
3. JavaScriptの追加
このコードは、Contact Form 7のフォームにカスタムJavaScriptファイルを追加する方法を示しています。
add_action('wpcf7_init', 'add_custom_js');
function add_custom_js() {
if (function_exists('wpcf7_add_script')) {
wpcf7_add_script('custom-script', plugin_dir_url(__FILE__) . 'js/custom.js');
}
}
引用元: https://contactform7.com/scripts/
4. フィールドの変更
このサンプルコードは、Contact Form 7の特定のフィールドの設定を変更するためのものです。
add_action('wpcf7_init', 'modify_form_fields');
function modify_form_fields() {
add_filter('wpcf7_form_tag', function($tag) {
if ($tag['name'] === 'your-field') {
$tag['options'] = array('placeholder' => 'Enter your value');
}
return $tag;
});
}
引用元: https://contactform7.com/form-tags/
5. カスタムメール送信の設定
このコードは、Contact Form 7のメール設定をカスタマイズする方法を示しています。
add_action('wpcf7_init', 'custom_email_settings');
function custom_email_settings() {
add_filter('wpcf7_mail_components', function($components) {
$components['subject'] = 'Custom Subject';
return $components;
});
}
引用元: https://contactform7.com/email/
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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 |