How to Automatically Delete WordPress Posts Older Than X Days?

The code automatically deletes WordPress posts that are older than 50 days just using the below SQL query.

add_action('wp', 'ts_delete_old_posts');

function ts_delete_old_posts() {
    global $wpdb;

    // Define the number of days after which posts should be deleted
    $days_old = 50;

    // Run the SQL query using $wpdb->query to delete posts older than X days
    $wpdb->query(
        $wpdb->prepare(
            "DELETE FROM $wpdb->posts
            WHERE post_type = %s
            AND DATEDIFF(NOW(), post_date) > %d",
            'post', // post_type to delete
            $days_old // Number of days old
        )
    );
}