添加具有预定义/预设日期的新帖子

时间:2013-06-24 作者:kaiser

当前的情况是,我目前正在使用的插件是一个额外的帖子列表视图:一个日历,如下面的屏幕截图所示。

Admin Calendar View

具有MP6和手持屏幕宽度的管理日历视图

现在每天的目标只显示帖子的数量。

我想补充的是a link to add a new post. 但是,此链接不仅应将您带到~/wp-admin/post-new.php?post_type=abc 屏幕,但也可以添加a predefined post date - 从你点击的那天起。

可能的解决方案和问题到目前为止,有几种选择:

钩住发布元框,尝试以某种方式修改日期preview_post_link-滤器然后我会附加另一个回调来拦截gmt_offset-带有\'pre_option_gmt_offset\'-过滤只是为了更改内部完成的计算touch_time() 返回当前日期。问题是计算time() + ( $offset * HOURS_IN_SECONDS ); 唯一可以改变的价值是$offset.

1 个回复
SO网友:Adam

我认为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

结束

相关推荐

update_option in javascript

因此,wordpress中有一个功能可以将命名选项/值对更新到选项数据库表中:<?php update_option( $option, $new_value ); ?>. 我正试图用javascript实现这个功能,这样当你点击页面底部时,一个选项就会更新。我使用此脚本检查您何时点击页面底部:$(window).scroll(function () { if ($(window).scrollTop() >= $(document).height() - $(window