web-dev-qa-db-fra.com

Conserver la date du brouillon du post après publication?

Je laisse les utilisateurs ajouter des publications en statut brouillon. Après avoir vérifié que tout va bien, je les publie. J'ai remarqué que les brouillons créés il y a deux jours changent de date après avoir été publiés. Y a-t-il un moyen de garder cette date originale?

1
Ciprian

vous devez définir manuellement la date de publication.

0
Norcross

Le code ci-dessous nécessite probablement quelques ajustements, mais l’astuce ici est d’obtenir la date de la première révision et de l’appliquer au message en cours de publication:

add_action(  'transition_post_status',  function ( $new_status, $old_status, $post )
{
  if ( $old_status == 'pending'  &&  $new_status == 'publish' 
       && $post->post_date_gmt == $post->post_modified_gmt) {
    $revisions = wp_get_post_revisions($post->ID);
    $oldest = NULL;
    foreach($revisions as $revision){
      $oldest = $revision->ID;
    };
    $previousdate = get_the_date( 'Y-m-d H:i:s', $oldest );
    wp_update_post(
      array (
        'ID'            => $post->ID,
        'post_date'     => $previousdate,
        'post_date_gmt' => get_gmt_from_date( $previousdate )
      )
    );
  }

}, 10, 3 );
0
That Brazilian Guy