web-dev-qa-db-fra.com

1 jour après la date personnalisée changer le statut de post à brouillon

1 jour après koncerter_start_date tous les messages avec type de message personnalisé koncert ont pour obtenir le brouillon de statut

2
Mathias

Votre question n'est pas très claire.

Tu veux dire:

1 jour après koncerter_start_date toutes les publications avec type-après-type koncert doivent avoir le statut draft?


EDIT

Code:

add_action( 'wp_loaded', 'concert_daily_tasks' );
function concert_daily_tasks() {
  $current_url = "https://" . $_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'];
  if ( $current_url == 'https://example.com/concert-daily-tasks' ) { // <-- set the correct URL!
    check_concert_status();
  }
}

function check_concert_status() {
  $today = new DateTime();

  $concert_start_date_str = '2018-10-10'; // I'm not sure where/how you get this data.
  $concert_start_date = DateTime::createFromFormat('Y-m-d', $concert_start_date_str); // make sure the format ('Y-m-d') matches $concert_start_date_str

  if($concert_start_date) {
    if($concert_start_date->modify('+1 day') <= $today) { // if concert start day was yesterday (or older) continue
      $args = array(
        'posts_per_page'   => -1, // get all posts
        'post_type'        => 'koncert',
        'post_status'      => 'publish',
      );
      $posts = get_posts($args);
      if($posts) {
        foreach($posts as $post) {
          wp_update_post(array(
            'ID' => $post->ID,
            'post_status' => 'draft',
          ));
        }
      }
    }
  }
}

Important:

  • Terminez la collection $ concert_start_date_str, voir le script.
  • Vous pouvez placer ceci dans functions.php
  • J'ai inclus un gestionnaire de tâches cron, lorsque vous accédez à https://example.com/concert-daily-tasks, le code est exécuté. Vous pouvez probablement configurer une planification de tâches cron dans votre panneau d'hébergement.
  • La tâche cron retournera un 404, mais le code fonctionnera quand même, je n'ai pas inclus de réponse 200 OK, vous pouvez le faire vous-même si vous le souhaitez ;-).

Greetz, Bjorn

0
Bjorn