plugins – Update existing post dates to random dates and time


I found this solution but it’s now not working now (I am getting a fatal error), can anyone please update the code so its works with WordPress 6.1 (Original Post: Update existing post dates to random dates)

 * Plugin Name: WPSE 259750 Random Dates
 * Description: On activation, change the dates of all posts to random dates

//* We want to do this only once, so add hook to plugin activation
register_activation_hook( __FILE__ , 'wpse_259750_activation' );
function wpse_259750_activation() {

  //* Get all the posts
  $posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any' ) );
  foreach( $posts as $post ) {

    //* Generate a random date between January 1st, 2015 and now
    $random_date = mt_rand( strtotime( '1 January 2015' ), time() );
    $date_format="Y-m-d H:i:s";

    //* Format the date that WordPress likes
    $post_date = date( $date_format, $random_date );

    //* We only want to update the post date
    $update = array(
      'ID' => $post->ID,
      'post_date' => $post_date,
      'post_date_gmt' => null,

    //* Update the post
    wp_update_post( $update );

I have a huge amount of posts, I think in this code trying to pull all posts at a time so if possible maybe we can add a batch system?

Mi2 5 months 2022-07-21T01:17:39-05:00 0 Answers 0 views 0

Leave an answer