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?
vous devez définir manuellement la date de publication.
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 );