概要
wpcf7_editor_panels
フィルタは、WordPress の Contact Form 7 プラグインにおける管理画面のパネル(タブ)を加工するために使用されます。このフィルタを使うことで、デフォルトの設定を変更したり、新しい設定オプションを追加することができます。具体的には以下のような機能を実装する際によく使用されます。
- カスタムフィールドの追加: フォームに特定の設定を追加するためのフィールドを作成。
- 設定タブのカスタマイズ: プラグインの設定タブに新しいセクションを追加する。
- インターフェースの改善: 管理画面のユーザーエクスペリエンスを向上させるカスタムUIを実装。
- 設定のグルーピング: 関連する設定項目をグループ化して整理。
- カスタムオプションの追加: 特定の機能に関連するオプションを追加する。
- フィルタの拡張: ユーザーまたは開発者による追加機能を提供するための拡張。
構文
add_filter( 'wpcf7_editor_panels', 'custom_function' );
function custom_function( $panels ) {
// パネルを追加または変更するロジック
return $panels;
}
パラメータ
$panels
: 加工前の管理画面のパネル情報を格納した配列。
戻り値
- 加工後のパネル情報の配列。
プラグインおよびバージョン情報
- 使用可能なプラグイン: Contact Form 7
- バージョン: 5.0 以降
- WordPress バージョン: 4.0 以降
サンプルコード
サンプルコード 1: 新しいタブの追加
このサンプルコードは、Contact Form 7 の管理画面に「新しいタブ」を追加します。
add_filter( 'wpcf7_editor_panels', 'add_custom_tab' );
function add_custom_tab( $panels ) {
$panels['custom'] = array(
'title' => __( 'Custom Settings', 'contact-form-7' ),
'callback' => 'custom_tab_callback'
);
return $panels;
}
function custom_tab_callback() {
echo '<h2>' . __( 'Custom Settings', 'contact-form-7' ) . '</h2>';
// フォームのカスタム設定表示
}
サンプルコード 2: タブの内容を変更
このサンプルコードは、既存のタブの内容をカスタマイズします。
add_filter( 'wpcf7_editor_panels', 'modify_existing_tab' );
function modify_existing_tab( $panels ) {
if ( isset( $panels['mail'] ) ) {
$panels['mail']['title'] = __( 'Email Settings Modified', 'contact-form-7' );
}
return $panels;
}
サンプルコード 3: タブ内容にカスタムフィールドを追加
このサンプルコードは、特定のタブにカスタムフィールドを追加します。
add_filter( 'wpcf7_editor_panels', 'add_field_to_tab' );
function add_field_to_tab( $panels ) {
$panels['mail']['fields'][] = array(
'id' => 'my_custom_field',
'title' => __( 'My Custom Field', 'contact-form-7' ),
'type' => 'text'
);
return $panels;
}
サンプルコード 4: タブを削除
このサンプルコードは、特定のタブを削除します。
add_filter( 'wpcf7_editor_panels', 'remove_some_panels' );
function remove_some_panels( $panels ) {
unset( $panels['additional'] ); // 例: 追加設定タブを削除
return $panels;
}
サンプルコード 5: タブの順序を変更
このサンプルコードは、タブの順序を変更します。
add_filter( 'wpcf7_editor_panels', 'change_panel_order' );
function change_panel_order( $panels ) {
$panels = array_merge(
array( 'new_tab' => $panels['new_tab'] ),
$panels
);
return $panels;
}
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |