概要
cptui_taxonomy_import_update_save
は、WordPressのプラグインCustom Post Type UIにおいて、カスタム分類(タクソノミー)のインポートまたは更新が完了した後に実行されるアクションフックです。このフックは、カスタムタクソノミーの作成や更新に関連する処理をカスタマイズしたい場合に非常に便利です。
このアクションは以下のような機能を実装する際に使用されます:
- タクソノミーインポート後の通知を表示する
- データをインポートする際に特定の設定を適用する
- タクソノミーのメタデータを追加または更新する
- タクソノミーのインポートに関連するロギングを行う
- タクソノミーの関連性のあるポストタイプを更新する
- インポートプロセスのエラーハンドリングを実装する
このアクションはCustom Post Type UIのバージョン1.8.0以降、WordPress 4.5以降で使用可能です。
構文
do_action('cptui_taxonomy_import_update_save', $taxonomy_data);
パラメータ
$taxonomy_data
(array): インポートまたは更新されたタクソノミーのデータが格納された配列。
戻り値
なし。フックの目的は、カスタマイズされた処理を実行することにある。
サンプルコード1
add_action('cptui_taxonomy_import_update_save', 'my_custom_taxonomy_action', 10, 1);
function my_custom_taxonomy_action($taxonomy_data) {
// インポートされたタクソノミーの情報をログに記録する
error_log(print_r($taxonomy_data, true));
}
説明: このサンプルは、インポートされたタクソノミーのデータをエラーログに記録します。デバッグに役立ちます。
サンプルコード2
add_action('cptui_taxonomy_import_update_save', 'update_term_meta_after_import', 10, 1);
function update_term_meta_after_import($taxonomy_data) {
// 特定のタクソノミーにメタデータを追加
if (isset($taxonomy_data['terms'])) {
foreach ($taxonomy_data['terms'] as $term) {
update_term_meta($term['term_id'], 'custom_meta_key', 'custom_meta_value');
}
}
}
説明: このサンプルは、インポートされたタクソノミーの各タームにカスタムメタデータを追加します。
サンプルコード3
add_action('cptui_taxonomy_import_update_save', 'notify_admin_of_import', 10, 1);
function notify_admin_of_import($taxonomy_data) {
// インポート完了を管理者に通知するメールを送信
wp_mail('admin@example.com', 'タクソノミーインポート完了', 'タクソノミー ' . $taxonomy_data['name'] . ' が正常にインポートされました。');
}
説明: このサンプルは、タクソノミーのインポート完了時に管理者にメールを送信します。
サンプルコード4
add_action('cptui_taxonomy_import_update_save', 'add_custom_capabilities', 10, 1);
function add_custom_capabilities($taxonomy_data) {
// 特定のタクソノミーに対してカスタム権限を追加
$role = get_role('editor');
if ($role) {
$role->add_cap('manage_custom_taxonomy_' . $taxonomy_data['name']);
}
}
説明: このサンプルは、インポートされたタクソノミーに対して、エディターロールにカスタム管理権限を追加します。
サンプルコード5
add_action('cptui_taxonomy_import_update_save', 'clean_up_old_terms', 10, 1);
function clean_up_old_terms($taxonomy_data) {
// 既存の古いタクソノミー用語を削除する
$terms = get_terms(['taxonomy' => $taxonomy_data['name'], 'hide_empty' => false]);
foreach ($terms as $term) {
if ($term->name === '古い用語') {
wp_delete_term($term->term_id, $taxonomy_data['name']);
}
}
}
説明: このサンプルは、インポートされたタクソノミーで古い用語を削除します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |