删除所有瞬变是否有危险?


9

我有一个供客户使用的大型站点,并且由于它是真正定制的wordpress安装,具有许多功能扩展,因此我无法使用缓存插件。

为了提高性能,我使用瞬态构建了很多站点(例如,导航,带有所有标记的google映射等),并使动态内容保持动态。

这里的问题是,如果我更改了任何内容,则必须手动删除特定的瞬态以查看当前结果。当从不同的频道输入时,该网站会显示不同的菜单和googlemaps,因此我希望每个区域都有十个瞬态。

您是否要创建一个函数一次删除所有这些瞬变函数(并列出瞬变的名称),还是可以删除站点上的所有瞬变?

并不是真的那么紧迫,但是对于未来的发展,我想知道您是否对类似的东西有任何问题,以及如何管理所有瞬态。

欢呼,菲斯基


Answers:


6

对于开发,我建议始终使用WP_DEBUGset to true并执行以下操作:

$key = 'transient_key';
if( !WP_DEBUG && ( false !== ($transient = get_transient($key)) ){

   /* Generate transient manually */
   $expiration = 24*60*60;//How long to keep for
   set_transient($key,$transient, $expiration);
}

通常,删除瞬态应该没问题,因为永远不要认为瞬态存在于数据库中。


感谢@stephen,我在开发阶段使用了此解决方案,但在重构阶段将其清除后才投入使用。不应该这样做;),但是根据您的经验,您是否在手动删除瞬变时遇到麻烦?
fischi 2012年

:)感谢您删除瞬态的信息。我以为是这样,但并不确定。
fischi 2012年

1
不,我从来没有遇到过手动删除瞬态的麻烦-除非厌倦了它并使用这种方法:)。
史蒂芬·哈里斯

1

您应该挂接更新事物时清除和刷新瞬变时运行的各种操作。例如,当导航菜单更新时,将wp_update_nav_menu触发该动作,将一个函数挂钩到该菜单以刷新导航菜单瞬态。


谢谢@Milo,这是一个好主意,但对我而言不可用,因为瞬变不仅会影响菜单。一直有很多内容(地图上的兴趣点)添加,并且网站非常忙-因此,例如,我仅每小时一次构建最新的POI列表,而不仅仅是在wp_update_nav_menu
fischi

那只是一个例子,刷新任何操作它依赖于每个瞬间
米洛

是的,你就在这里。但是,并非我所有的瞬态现象都与动作相关。其中一些在模板文件中使用(当我创建大列表时),并包含实际的html,每个持续一小时。对于设置为长寿命的瞬态,例如您提到的瞬态,我使用您的方法:)
fischi 2012年

1

在开发环境中进行开发是否更好,以使需要在更改时看到更改不会影响公共站点?

然后,使用这种方法,您可以部署/推广到生产环境中,并以较低的流量时间刷新瞬态,而对站点性能和用户体验的影响最小。


是的,当然会更好-但是在我开始经营业务的几周后,我开始了这个项目,从那时开始学到了很多东西。我只是在建立完整的基础架构-我正在计划在服务器上开发自定义主题和插件,并在完成后使用wordpress update功能将更新部署到站点。我承认,这不是我在那里选择的最佳方法。
fischi 2012年

我认为我们been there and done that一次又一次。
2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.