Zufälliges Beitragsdatum in WordPress setzen

Ich hatte kürzlich einen Fall, bei dem ich eine große Menge Beiträge in einen Blog importiert habe. Damit nicht alle Beiträge das gleiche Datum haben, sollten zufällige Werte für das Beitragsdatum gesetzt werden.

Das habe ich über ein kleines WordPress-Plugin realisiert, welches bei der Aktivierung die Beitragswerte auf einen zufälligen Wert zwischen einem spezifizierten Start-Datum und heute setzt. Der Code dieses Plugins ist:

<?php
/**
 * Plugin Name:       Randomize Post Dates
 * Plugin URI:        https://www.sewid-webdesign.de
 * Description:       Generates randomized post dates
 * Version:           0.1.0
 * Requires at least: 5.8
 * Requires PHP:      8.0
 */

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

    //* Get all the posts - modify if desired
    $posts = get_posts([
        'numberposts' => -1,
        'post_status' => 'any',
        'post_type' => 'post',
    ]);
    foreach ($posts as $post) {
        //* Generate a random date between January 1st, 2021 and now
        $random_date = mt_rand(strtotime('1 January 2021'), 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 and the modified date
        $update = [
            'ID' => $post->ID,
            'post_date' => $post_date,
            'post_date_gmt' => null,
            'post_modified' => $post_date,
            'post_modified_gmt' => null,
        ];

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

In Zeile 24 kann das gewünschte Start-Datum angegeben werden. Den Plugin-Code einfach in einem neuen Plugin hinterlegen und ausführen.

Wichtig: Nach der Ausführung muss das Plugin wieder deaktiviert und idealerweise gelöscht werden, um zu vermeiden, dass versehentlich eine weitere Änderung durchgeführt wird.

Bei Bedarf gibt es hier den Plugin-Code auch als Plugin-Datei zum Download:

Schreibe einen Kommentar