ワードプレスのwp_scheduled_deleteアクションの使用方法・解説

概要

wp_scheduled_deleteアクションは、WordPressの定期的なメンテナンススクリプトの一部で、古くなったゴミ箱の投稿とコメントを削除するために使用されます。このアクションは、WordPressをクリーンで効率的に保つために便利です。

以下に、wp_scheduled_deleteアクションがよく使用されるシナリオを8つ挙げます。

  1. 不要なごみ箱の投稿を定期的に削除する
  2. コメントスパムの削除を自動化する
  3. 古いリビジョンを管理する
  4. 定期的なデータベースのクリーンアップを実施する
  5. ユーザーが削除した投稿やコメントの保持期間を管理する
  6. パフォーマンスの向上のために不要なデータを削除する
  7. 自動バックアップの前処理を行う
  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

非推奨または削除されたワードプレスバージョン

  • 特に非推奨または削除されているバージョンはありません。

この関数について質問する


上の計算式の答えを入力してください