在未来日期自动发布帖子

时间:2015-01-29 作者:user1048676

我想让我的用户能够发布帖子,只有在日期到达时,帖子才会可见(比如发布状态)。我正在使用以下代码尝试将其设置为“已发布”,但在将来的某个日期:

$bmt_post = array(
    \'post_title\'    => wp_strip_all_tags( $title ),
    \'post_content\'  => $information,
    \'post_status\'   => \'publish\',
    \'post_category\' => array( $cat_ids ),
    \'post_date_gmt\' => $postdate,
    \'post_date\' => $postdate,
);
$post_id = wp_insert_post( $bmt_post );
当我这样做的时候,帖子已经可见了,即使它被安排在未来的日期。如果我删除\'post_status\' => \'publish\' 然后,它将帖子创建为草稿,但随后必须有人返回日期并将状态从草稿更改为已发布。

当用户创建为将来创建的帖子,并且只有当post\\u日期是实际日期时才可见时,我如何做到这一点?我知道有一个\'post_status\' => \'future\' 但这是否会自动转换为在该日期发布?

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

从挖掘到/wp包括/张贴。php,看起来您可能需要执行以下操作:

将您的帖子状态设置为“未来”

  • 将帖子日期设置为您希望发布的日期
  • 按照代码所示插入帖子
    1. 插入帖子后运行以下代码

      $time = strtotime( $postdate . \' GMT\' );
      wp_schedule_single_event( $time, \'publish_future_post\', array( $post_id ) );
      
      这就是wordpress内部用来安排未来发布的内容。有关更多信息,请检查以下功能

      check_and_publish_future_post( $post_id )
      

    结束