概要
wpcf7_admin_init
は、Contact Form 7プラグインにおけるアクションフックで、WordPressの管理画面が初期化される際に呼び出されます。このフックを利用することで、以下のような機能を実装することができます:
- カスタム設定の追加や初期化
- 管理画面での独自メタボックスの表示
- プラグインのバージョン管理や更新メッセージの表示
- JavaScriptやCSSの管理画面専用スクリプトのエンqueued
- 管理画面のユーザー権限のチェックと制限
- 設定ページへのリダイレクト処理
構文
add_action('wpcf7_admin_init', 'function_name');
パラメータ
- 特になし
戻り値
- 特になし
使用可能なプラグインContact Form 7のバージョン
- バージョン 5.0 以降
使用可能なWordPressのバージョン
- バージョン 4.0 以降
サンプルコード
サンプルコード 1: カスタム設定を追加する
このコードはContact Form 7の設定ページにカスタムオプションを追加します。
add_action('wpcf7_admin_init', 'my_custom_wpcf7_settings');
function my_custom_wpcf7_settings() {
add_settings_field(
'my_custom_setting',
'カスタム設定',
'my_custom_setting_callback',
'contact-form-7',
'default'
);
}
function my_custom_setting_callback() {
echo '<input type="text" name="my_custom_setting" value="' . esc_attr(get_option('my_custom_setting')) . '" />';
}
サンプルコード 2: 管理画面用のCSSを読み込む
このコードはContact Form 7の管理画面で特定のCSSファイルを読み込みます。
add_action('wpcf7_admin_init', 'my_custom_admin_styles');
function my_custom_admin_styles() {
wp_enqueue_style('my_admin_styles', plugins_url('css/my-styles.css', __FILE__));
}
サンプルコード 3: フィールドバリデーションを追加
このコードは管理画面で特定のフィールドが空でないかをチェックします。
add_action('wpcf7_admin_init', 'my_custom_validation');
function my_custom_validation() {
if (empty($_POST['my_custom_field'])) {
add_settings_error('my_custom_field', 'my_custom_field_error', 'このフィールドは必須です。');
}
}
サンプルコード 4: 設定ページへのリダイレクト
このコードは特定の条件が満たされない場合、設定ページにリダイレクトします。
add_action('wpcf7_admin_init', 'my_redirect_to_settings');
function my_redirect_to_settings() {
if (!current_user_can('manage_options')) {
wp_redirect(admin_url('options-general.php?page=wpcf7'));
exit;
}
}
サンプルコード 5: プラグインのバージョンを表示
このコードは管理画面にプラグインのバージョンを表示します。
add_action('wpcf7_admin_init', 'my_display_version');
function my_display_version() {
echo '<div class="my-version">Contact Form 7 バージョン: ' . esc_html(WPCF7_VERSION) . '</div>';
}
この関数のアクションでの使用可能性
アクション名 | 使用例の有無 |
---|---|
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 |
この表は、wpcf7_admin_init
アクションが他のアクションで使用されるかどうかを示します。