web-dev-qa-db-ja.com

公開後も投稿日のドラフトを保存しますか?

私はユーザーに下書きステータスで投稿を追加させます。確認し、すべて問題ないことを確認したら、それらを公開します。私は、公開されてから2日前に変更日が作成されたドラフトに気付いた。元の日付を保持する方法はありますか?

1
Ciprian

手動で公開日を設定する必要があります。

0
Norcross

以下のコードはおそらく調整が必要ですが、ここでのトリックは最初のリビジョンの日付を取得し、それを公開されている投稿に適用することです。

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