在缓存的Wordpress网站上显示动态内容的最佳方法?


14

我真的很想使用Cache插件之一,以便可以在WordPress主题/网站上提供更多的静态页面。显然,这是您可以对WordPress主题/网站进行的最佳性能升级。

我的主题有一些动态元素,使我无法进入“跃迁到静态/缓存”页面。

我将在下面概述这些问题,并提供一种可能的方式来解决到目前为止我想到的每个问题。

这篇文章的目的是获得更好的想法/方法来处理我解释的问题,或者至少让我放心我处于正确的轨道。我是一名12-13年以上的PHP老手,但是在过去的1-2年中才使用WordPress,到目前为止,我对功能确实印象深刻,如果这样的事情存在,我现在将是WordPress Fanboy!

好的,到目前为止,我转换到缓存页面时已经想到的问题...


单帖页面

  1. Views Counter问题 -我有一个函数可以在Posts页面上获取“ View / hit Counter”的计数值,以提供Posts Views的概念供用户查看。这些不是唯一的访客,而只是一个简单的计数器。我已经为这些值创建了一个单独的MySQL表,但我仍在尝试决定是否应该继续使用该表或切换为使用元字段。在页面视图中,无论哪种方式,都将在每次页面加载时获取数据库值并将其增加+1。(不添加管理员用户视图。)然后,该值以以下形式显示在页面上988 Views

    Views Counter可能的解决方案 -我可以使用Ajax来运行此Value / function。一旦加载了新的“缓存/静态”页面,JavaScript便可以使用Ajax请求并更新该页面的Views计数器。 这听起来像是针对此类问题的最佳解决方案吗?

  2. 发表评论问题 -使用默认的WordPress评论系统,每次将新评论添加到帖子时,都需要重新构建该帖子的“缓存/静态”页面!从我所看到的内容来看,我所看到的Caching插件上有一个选项可以让您做到这一点,您可以让它在每次发布新评论时重新构建页面。从表面上看,这听起来不错,但我可以想象这是高流量/活跃站点中的噩梦,在该站点中,您可能有多个用户在同一时间评论同一篇文章(所有这些未经测试,所以我不知道)

    发表评论可能的解决方案 -因此,为解决评论问题,我在上面提到了一个解决方案,您可以将Cache插件设置为在每个新的Comment上简单地重建Cached / Static页面。我担心的是,从长远来看,我并不是很满意。现在,我看到越来越多使用的另一种可能的解决方案是使用JavaScript解决方案,例如Disqus评论或类似的解决方案。长期以来,我确实反对这一观点,因为我希望所有评论都不要依赖任何第三方作为我的评论系统。对于这个问题,我还是很感兴趣,但是已经切换到在我的网站上使用Disqus评论,并且到目前为止效果很好。我愿意接受其他可能的解决方案吗?还是您认为这确实是要走的路?

全站点侧边栏

  1. 补充工具栏最近的文章问题 - 补充工具栏中有一些选项卡,这些选项卡在网站的每个页面上显示在整个网站范围内...其中一个选项卡可加载博客上的10条最新帖子,因为该标签显示在网站的每个页面上,添加新文章/帖子后,将要求重新构建网站上的每个“缓存/静态”页面,以反映此“最新帖子列表”中新添加的帖子。

    补充工具栏最近的文章可能的解决方案 -我想我还是想出了一个好的可能的解决方案。我可以使用Javascript和Ajax将这些内容加载到Cached / Static页面中,这样就不必如此频繁地重新构建它们,但仍可以显示最新的帖子。

    这听起来是一个好的解决方案?或更重要的是,您能想到解决此问题的另一种更好或替代的解决方案吗?


至今还不会弄脏我的手,这是到目前为止将主题转换为“对缓存/静态友好”的所有可能出现的问题


更新

我只是想到了另一个要考虑的问题。每次添加适合该页面列表的帖子时,所有标签/类别以及用户页面都需要更新。我认为这一定已经是我想到的缓存插件的功能


1
为什么每个请求的Views Counter都必须正确?如果显示在缓存更新之前缺少5-10个视图,将会发生什么情况?
Ünsal科尔克马兹

Answers:


2

因此,有很多子问题,我会尽力解决。

意见计数器问题-我可以使用Ajax来运行此值/函数。一旦加载了新的“缓存/静态”页面,JavaScript便可以使用Ajax请求并更新该页面的Views计数器。

完全同意:额外的好处:当“重要”内容完成加载时,可以通过ajax加载它。尽一切可能减少页面加载时间。我肯定会和Ajax一起去的。

发表评论问题

我怀疑这将不是一个大问题。但再次:ajax。除“主要”内容外,加载注释。让它定期推送新评论(就像Stackoverflow或twitter.com一样,警告用户并等待其单击以刷新评论流)。

全站点侧边栏

我将使用另一个插件:WP Widget Cache,它允许您为侧边栏中的每个窗口小部件设置缓存时间,并且可以与通常的缓存插件配合使用。对于您的情况,只需将“ 0”设置为不对那些小部件进行缓存,或者将其设置为“ 10分钟”(比根本不进行缓存更好)。


1

如果您使用的是w3总缓存,则可以排除某些页面(如侧边栏)不被缓存。

转到WordPress管理>性能>页面缓存,然后更改从不缓存这些页面下的部分

永不缓存页面W3总缓存
本示例显示主题的侧边栏文件已从缓存中排除。

您还可以在缓存的页面上设置更短的到期时间,例如5或15分钟。缓存的页面最会影响首次访问者并且没有会话Cookie的人。首次向匿名访问者展示页面的“最常请求”缓存视图。

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.