概要
cptui_post_type_delete_type
は、WordPressのCustom Post Type UIプラグインによって提供されるアクションフックです。このフックは、カスタム投稿タイプが削除される際に実行されます。サイトのニーズに応じて、特定のカスタム投稿タイプに関連する処理を実行する際に非常に役立ちます。
このアクションを使って実装される機能には、以下のようなものがあります。
1. データベースからの関連データの削除
2. カスタムタクソノミーのクリーニング
3. フロントエンドに表示されていたキャッシュのクリア
4. ユーザーの権限や設定の更新
5. サードパーティサービスとの連動処理(例: API経由の通知)
6. ログ記録やイベントトラッキングの実施
構文
add_action('cptui_post_type_delete_type', 'your_custom_function');
function your_custom_function($post_type) {
// 実行したい処理
}
パラメータ
$post_type
: 削除されるカスタム投稿タイプのスラッグ。
戻り値
このアクションは戻り値を持ちません。必要に応じて他の処理を呼び出す情報を持つことができます。
対応バージョン
- Custom Post Type UI プラグイン: 1.0以降
- WordPress: 4.0以降
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
サンプルコード
サンプル 1: 投稿タイプ削除時に関連メタデータを削除する
このコードは、カスタム投稿タイプが削除されたときに、その投稿に関連するメタデータも削除します。
add_action('cptui_post_type_delete_type', 'delete_custom_post_meta');
function delete_custom_post_meta($post_type) {
global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = '$post_type')");
}
サンプル 2: カスタム投稿タイプ削除時にエラーログを記録
カスタム投稿タイプが削除された際、その情報をファイルにログとして記録します。
add_action('cptui_post_type_delete_type', 'log_post_type_deletion');
function log_post_type_deletion($post_type) {
error_log("投稿タイプ '$post_type' が削除されました。");
}
サンプル 3: APIに通知を送信
カスタム投稿タイプが削除された際に外部APIに通知を送信します。
add_action('cptui_post_type_delete_type', 'notify_api_on_deletion');
function notify_api_on_deletion($post_type) {
$api_url = 'https://example.com/api/notify';
wp_remote_post($api_url, ['body' => ['post_type' => $post_type]]);
}
サンプル 4: キャッシュのクリア
削除したカスタム投稿タイプに関連するキャッシュをクリアします。
add_action('cptui_post_type_delete_type', 'clear_cache_on_post_type_delete');
function clear_cache_on_post_type_delete($post_type) {
// ここにキャッシュクリアのロジックを追加
delete_transient('custom_cache_' . $post_type);
}
サンプル 5: プラグインの設定をリセット
カスタム投稿タイプが削除された際に、特定の設定もリセットします。
add_action('cptui_post_type_delete_type', 'reset_plugin_settings_on_deletion');
function reset_plugin_settings_on_deletion($post_type) {
if ($post_type === 'your_custom_post_type') {
delete_option('your_plugin_setting');
}
}
これらのサンプルコードは、開発者がカスタム投稿タイプが削除される際に実行できる処理のアイデアを提供します。より具体的な要件に応じて、これらのコードをカスタマイズして使用してください。