我认为chat中讨论的最佳解决方案是第3点,通过使用wp_insert_post
在其他参数中,您可以设置以下类似参数:;
\'post_date\' => [ Y-m-d H:i:s ] //The time post was made.
\'post_date_gmt\' => [ Y-m-d H:i:s ] //The time post was made, in GMT.
。。。无需拦截
gmt_offset
通过
pre_option_gmt_offset
这是一条死胡同。
此外,替换发布元框、克隆它、重建它,无论你想用什么方式说它,都可能是disastrous 维修nightmare.
如果我们考虑一下,添加草稿(或您选择的自定义帖子状态)远没有上述想法那么麻烦。
唯一的缺点wp_insert_post
我们实际上是在向数据库中插入一篇文章,因此在某些方面,我们正在用通常是自动草稿的方式污染数据库。
那就是wp_cron
发挥作用。
取决于您是否坚持draft
帖子状态,正如您在聊天中提到的,您可能希望添加一个自定义字段(前缀为下划线),用于标记这些帖子条目。
如果用户没有publish 该条目,则我们可以认为此帖子项已被用户丢弃,因此应标记为清除。
我甚至会添加一个自定义管理通知,向用户指出,如果他们不发布帖子,它将不会作为条目添加到日历中,并将指定在以后进行清理。
这是最安全、最明智、最经得起未来考验的解决方案,直到(如果有)我们能够通过查询变量而不是(post_title/content/excerpt
) 这似乎是目前唯一有效的方法。
我能想到的唯一其他选项是通过JavaScript和或jQuery设置日期输入的值,这很容易做到,但你不能保证用户启用了JavaScript,如果他们没有启用,这将失败。
We know some edge-cases exist for custom post status that may be of concern but considering their usage in your application I think the risk is minimal in using them