SQL-Abfrage zum Aktualisieren von post_date (ein Post = ein einzelnes Datum und Uhrzeit)

Ich habe 120 Beiträge einer Kategorie bereit für meinen WordPress Blog. Momentan sind Beiträge Entwürfe und ich möchte sie nicht manuell planen.

Ich möchte sie so veröffentlichen:

  • 4 Artikel jeden Tag ab dem 1. August 2013
  • 1 um 10 Uhr / 1 um 14 Uhr / 1 um 17 Uhr / 1 um 20:30 Uhr

Was ich brauche, ist die SQL-Abfrage zu:

  • Aktualisieren Sie date_post für die 120 Posts, basierend auf den oben beschriebenen Anforderungen
  • Ändern Sie den Modus “Entwurf” in “Ausstehend”
  • Die Veröffentlichungsreihenfolge basiert auf dem Erstellungsdatum der Beiträge: das ältere wird das erste veröffentlichte sein.

Ich bin in den Abfragen und Schleifen verloren. Wenn jemand helfen könnte, wäre es sehr sehr geschätzt.

Danke vielmals,

Chris

Solutions Collecting From Web of "SQL-Abfrage zum Aktualisieren von post_date (ein Post = ein einzelnes Datum und Uhrzeit)"

Ich würde das nicht mit SQL machen. Eine relativ einfache PHP-Schleife sollte funktionieren.

function bulk_schedule_posts_wpse_105834() { $args = ( array( 'cat' => 1, 'posts_per_page' => -1, 'post_status' => 'draft', 'post_type' => 'post', ) ); $posts = new WP_Query($args); if (!$posts->have_posts()) return false; $date = '2013-08-01'; $times = array( '10:00', '14:00', '17:00', '20:30' ); while ($posts->have_posts()) { global $post; $posts->the_post(); if (0 !== $posts->current_post && 0 === $posts->current_post%4) { $date = date('Ym-d',strtotime('+1 day',strtotime($date))); } $thisdate = $date.' '.$times[$posts->current_post%4].':00'; $date_gmt = get_gmt_from_date($thisdate); $post->edit_date = true; $post->post_date = $thisdate; $post->post_date_gmt = $date_gmt; $post->post_status = 'future'; wp_update_post($post); } } bulk_schedule_posts_wpse_105834(); 

Führen Sie diese function einmal aus und entfernen Sie sie dann.

Was Sie tun, ist mäßig gefährlich. Testen Sie das gründlich auf Dummy-Daten, bevor Sie es auf einer Live-Site verwenden. Ich denke nicht, dass es tatsächlich viele Daten zerstören sollte, aber es könnte ein großes Durcheinander verursachen.

Kaum getestet Möglicherweise errorshaft. Vorbehaltsteller Keine Rückerstattung.