是否在发布后保留帖子的草稿日期?

时间:2011-11-25 作者:Ciprian

我允许用户以草稿状态添加帖子。在我检查并确认一切正常后,我发布了它们。我注意到两天前创建的草稿在发布后会更改日期。有没有办法保持原来的日期?

2 个回复
最合适的回答,由SO网友:Norcross 整理而成

您需要手动设置发布日期。

SO网友:That Brazilian Guy

下面的代码可能需要一些调整,但这里的技巧是获取第一次修订的日期,并将其应用于正在发布的帖子:

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 );

结束

相关推荐

在SAVE_POST之后使用INSERT_POST_DATA和在POST_TERVATION DRAFT_TO_Schedule之后使用INSERT_POST的事件日历

好吧,我正在为我的网站开发一个活动日历,这是一项可怕的任务,我有点卡住了。我对任何想法都持开放态度,但以下是我正在做的和我想做的。我假设我的主要问题是挂钩和过滤器的顺序,因为我觉得我已经很好地掌握了我想要做什么。此外,我坚持使用wordpress挂钩和过滤器,而不是直接操作mysql数据库。缺点是。。。保存第一个自定义字段,然后将当前post\\u日期更改为该自定义字段,并将post\\u状态更改为future,无论何时将帖子保存为草稿或提交以供审阅</获取第二个自定义字段,插入一篇新文章,该自定义