第一次保存或发布时,强制自定义发布类型状态为‘将来’

时间:2019-03-23 作者:Stephen G

我有一个自定义的事件帖子类型设置。我使用高级自定义字段设置事件的时间/日期。我还想根据ACF值设置发布日期。我很快就能让它正常工作了。。我的网站在保存时保存发布日期,但它会将帖子状态设置为“已发布”,而不是“未来”。

这是我在函数中使用的代码。php设置post\\u日期:

function my_acf_save_post( $post_id ) {
    $acfDate = get_field(\'alert_time\', $post_id);
    $my_post = array();
    $my_post[\'ID\'] = $post_id;
    $my_post[\'post_date\'] = $acfDate;
    wp_update_post( $my_post );

}
我的前端设置为显示已发布日期和未来日期。我有一个选择加入通知系统,当事件从未来转移到发布时,它会发送电子邮件。当我最初保存事件时,它将自身设置为“已发布”,这会发送一封不需要的电子邮件。如果有任何方法可以使上面的函数将状态强制为“未来”,那将是一个救命稻草。我尝试了很多不同的想法,但都没有成功。

1 个回复
SO网友:Qaisar Feroz

wp_insert_post_data 在将post数据插入数据库之前对其进行筛选。Documentation

add_filter(\'wp_insert_post_data\', \'schedule_post_on_publish\', \'99\');

function schedule_post_on_publish($data) {

      $post_type = "event"; // Replace event with exact slug of your custom post type

      if ( $data[\'post_type\'] == $post_type AND $data[\'post_status\'] == \'publish\' ) {

           $data[\'post_status\'] = \'future\';
       }

       return $data;
}
这可能会有所帮助。

相关推荐