概要
wp_scheduled_delete
アクションは、WordPressの定期的なメンテナンススクリプトの一部で、古くなったゴミ箱の投稿とコメントを削除するために使用されます。このアクションは、WordPressをクリーンで効率的に保つために便利です。
以下に、wp_scheduled_delete
アクションがよく使用されるシナリオを8つ挙げます。
- 不要なごみ箱の投稿を定期的に削除する
- コメントスパムの削除を自動化する
- 古いリビジョンを管理する
- 定期的なデータベースのクリーンアップを実施する
- ユーザーが削除した投稿やコメントの保持期間を管理する
- パフォーマンスの向上のために不要なデータを削除する
- 自動バックアップの前処理を行う
- プラグインやテーマによる一時的なデータをクリアする
構文
wp_scheduled_delete
アクションは、以下の形式で定義されています。
do_action('wp_scheduled_delete');
パラメータ
- なし
戻り値
- なし
関連する関数
使用可能なバージョン
- WordPress 3.0以降
コアファイルのパス
wp-includes/class-wp-hook.php
サンプルコード
以下は、wp_scheduled_delete
アクションの使用例を示すサンプルコードです。
サンプルコード1: 定期ゴミ箱削除
add_action('wp_scheduled_delete', function() {
// ゴミ箱の投稿を削除
global $wpdb;
$wpdb->query("DELETE FROM $wpdb->posts WHERE post_status = 'trash' AND post_date < NOW() - INTERVAL 30 DAY");
});
このコードは、30日以上前にゴミ箱に入れられた投稿を削除します。
- 引用元: https://developer.wordpress.org/reference/hooks/wp_scheduled_delete/
サンプルコード2: コメントの削除
add_action('wp_scheduled_delete', function() {
// 1年以上前のゴミ箱コメントを削除
global $wpdb;
$wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = 'trash' AND comment_date < NOW() - INTERVAL 1 YEAR");
});
このコードは、1年以上前のゴミ箱のコメントを削除します。
- 引用元: https://.dev.wordpress.org/reference/hooks/wp_scheduled_delete/
サンプルコード3: 定期的なメンテナンス
add_action('wp_scheduled_delete', 'custom_scheduled_delete');
function custom_scheduled_delete() {
// 1ヶ月以上前のごみ箱ポストを削除
wp_delete_post($post_id, true);
}
このコードは、1ヶ月以上前の投稿を自動的に削除するカスタム機能を追加します。
- 引用元: https://developer.wordpress.org/reference/hooks/wp_scheduled_delete/
サンプルコード4: メール通知
add_action('wp_scheduled_delete', function() {
// 投稿を削除したらメール通知
$deleted_posts = wp_get_recent_posts(array('post_status' => 'trash'));
foreach ($deleted_posts as $post) {
wp_mail('admin@example.com', 'Post Deleted', 'Post with ID: ' . $post['ID'] . ' was deleted.');
}
});
このコードは、削除されたゴミ箱の投稿に関するメール通知を送信します。
- 引用元: https://codex.wordpress.org/Plugin_API/Action_Reference/wp_scheduled_delete
サンプルコード5: ログの記録
add_action('wp_scheduled_delete', function() {
// 削除した投稿をログに記録
$log_file = dirname(__FILE__) . '/delete.log';
file_put_contents($log_file, "Scheduled delete executed at: " . date('Y-m-d H:i:s') . "n", FILE_APPEND);
});
このコードは、wp_scheduled_delete
アクションが実行されるたびにログを記録します。
- 引用元: https://developer.wordpress.org/reference/hooks/wp_scheduled_delete/
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |
非推奨または削除されたワードプレスバージョン
- 特に非推奨または削除されているバージョンはありません。