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


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.