WP Super Cache

描述

该插件可以从您的动态WordPress博客中生成静态html文件。 生成html文件后,您的WEB服务器将直接使用html文件来提供服务,而无需处理相对较臃肿和昂贵的WordPress PHP脚本。

静态html文件将提供给绝大多数用户:

  • 未登录的用户。
  • 没有在您的博客上留下评论的用户。
  • 或者没有查看过密码保护文章的用户。

99% 的访问者将会被提供静态 HTML 文件。一个缓存文件可以被服务数千次。其他访问者将会被提供定制的缓存文件,以适应他们的访问。如果他们已登录或留下评论,这些详细信息将会被显示和缓存给他们。

该插件以3种方式提供缓存文件(按速度排序)。

  1. 专家。最快的方法是使用Apache mod_rewrite(或您的web服务器支持的任何类似模块)来提供 “超级缓存 “静态html文件。这些方法完全绕过了PHP,且速度飞快。如果您的服务器受到大量的流量冲击,也可以很容易的应对,因为请求是 “轻量级 “的。需要Apache mod_rewrite模块(如果您设置有自定义的固定链接,则该模块可能已经安装)并预先修改了您的.htaccess文件,这些修改势必会存在一些风险,如果修改不正确,则可能会使您的站点瘫痪。
  2. 简单。超级缓存的静态文件可以由PHP提供,这是使用插件的推荐方式。如果存在”超级缓存”文件,插件将提供该文件,它的速度几乎与mod_rewrite方法一样快。这种方式更容易配置,因为不需要更改.htaccess文件。您仍然需要自定义永久链接。在此缓存模式下,您可以保持页面的某些部分是动态的。
  3. WP-Cache 缓存。主要用于缓存已知用户的页面、带参数的 URL 和订阅源。已知用户是已登录的用户、留下评论的访客或应显示自定义每个用户数据的用户。这是最灵活的缓存方法,但速度稍慢。如果禁用了超级缓存,WP-Cache 缓存也会缓存未知用户的访问。在此模式下,您的页面也可以有动态部分。此模式始终启用,但您可以单独禁用已知用户、带参数的 URL 或订阅源的缓存。如果您只想使用 WP-Cache 缓存,请在 wp-config.php 中将常量 “DISABLE_SUPERCACHE” 设置为 1。

如果您不熟悉编辑 PHP 文件,那么请使用简易模式。它易于设置且非常快速。

推荐设置

  1. 简单的缓存。
  2. 压缩页面。
  3. 不缓存已知用户的页面。
  4. 缓存重建。
  5. CDN支持。
  6. 额外的主页检查。

垃圾收集是清理过期和陈旧的缓存文件的行为。过期时间没有正确的值,但一个好的起点是1800秒。

请考虑删除“被拒绝的用户代理”文本框中的内容,并允许搜索引擎为您缓存文件。

尽可能多地预载帖子,并启用 “预载模式”。旧缓存文件的垃圾回收将被禁用。如果你不关心侧边栏小部件是否经常更新,可将预载时间间隔设置为 2880 分钟(2 天),这样你的所有文章就不会经常被重新缓存。预载发生时,被刷新帖子的缓存文件会被删除,然后重新生成。之后会对所有旧文件进行垃圾回收,以清除过时的缓存文件。
即使启用了预加载模式,在修改帖子或发表评论时,缓存文件仍会被删除。

开发

  • 该插件在GitHub上进行开发。
  • 将插件翻译成不同语言的工作在翻译页面上进行。

文档

如果您需要更多信息,可以查看wiki开发人员文档

预加载

以下术语的翻译如下: “your” 被翻译为 “您的”。

您可以通过预加载为您的网站的帖子、分类和标签生成缓存文件。预加载将访问您的网站的每个页面,并在访问过程中生成缓存页面,就像其他访问者一样。由于此功能的顺序性质,如果有很多帖子,预加载整个网站可能需要一些时间。

为了使预加载更加有效,可以禁用垃圾回收,以防止删除较旧的缓存文件。这可以通过在设置中启用”预加载模式”来完成。然而,请注意,页面最终会过时,但通过提交评论或编辑帖子进行更新将清除部分缓存。

垃圾收集

您的缓存目录会随着时间的推移而填满,占用服务器空间。如果空间有限或按容量计费,或者您担心网站的缓存页面会变得陈旧,那么就需要进行垃圾回收。垃圾回收定期进行,会删除缓存目录中的旧文件。在高级设置页面上,您可以指定以下内容:
1. 缓存超时时间。缓存文件被视为新鲜的时间长度。超过此时间后,它们将变为陈旧并可被删除。
2. 调度程序。设置垃圾回收应该多久进行一次。
3. 通知电子邮件。您可以在垃圾回收作业进度上得到通知。

垃圾回收的设置没有对错之分。它取决于您自己的网站。
如果您的网站经常更新或有评论,则将超时时间设置为1800秒,并将定时器设置为600秒。
如果您的网站大部分是静态的,您可以通过将超时时间设置为0来禁用垃圾回收,或者使用一个非常大的超时值。

缓存目录,通常是wp-content/cache/只用于存放临时文件。切勿将重要的文件或重要文件或目录的符号链接放在该目录中。如果插件对该目录有写访问权限,则该目录中的所有内容都会被删除。

CDN(内容分发网络)

内容分发网络(CDN)通常是由分布在世界各地的计算机组成的网络,通过使用离您较近的服务器,可以更快地为您的网站提供内容。图像、Javascript 和 CSS 文件等静态文件可以通过这些网络提供,以加快网站加载速度。您还可以使用您域名的子域来提供静态文件,从而创建一个 “穷人的 CDN”。

OSSDL CDN off-linker已集成到WP Super Cache中,以提供基本的CDN支持。它通过重写服务器上WP内容和WP includes中文件(不包括.php文件)的URL来工作,以便它们指向不同的主机名。许多CDN支持origin pull。这意味着CDN将在第一次请求文件时自动从您的服务器下载该文件,并将在可配置的时间内继续提供该文件,然后再从您的server下载该文件。

在插件设置页面的 “CDN “选项卡上进行配置。这是一项高级技术,需要对网络服务器或 CDN 的工作原理有基本了解。配置 CDN 后,请务必清除文件缓存。

REST API

现在有用于访问此插件设置的 REST API 端点。您需要作为具有查看设置页面权限的管理员用户进行身份验证才能使用它。尚未记录此内容,但您可以在 “rest” 目录中找到处理此内容的所有代码。

自定义缓存

现在可以使用 add_cacheaction() 函数挂钩缓存过程。

三个钩子(hooks)可用:

  1. wp_cache_get_cookies_values” – 修改 WP 缓存使用的密钥。
  2. add_cacheaction” – 在第二阶段运行。允许插件添加 WordPress 挂钩。
  3. cache_admin_page” – 在管理页面中运行。用它来修改该页面,或许可以添加新的配置选项。

还有一个常规的WordPress过滤器。使用“do_createsupercache”过滤器来自定义缓存前的检查。该过滤器接受一个参数。WP-Cache的wp_cache_get_cookies_values()函数的输出。

WP Super Cache 具有自己的插件系统。 加载 WP Super Cache 时将加载此代码,并且可用于更改缓存的方式。 这是在大多数 WordPress 加载之前,因此某些功能将不可用。 插件可以位于 PHP 可以加载它们的任何位置。 添加您自己的插件:

  • 通过将插件放在 wp-content/plugins/wp-super-cache-plugins 目录中,或
  • 通过调用 wpsc_add_plugin($name),其中 $name 是插件的完整文件名和路径。你只需要调用一次该函数就可以添加它。使用 wpsc_delete_plugin($name)将其从加载的插件列表中删除。

WP Super Cache使用的用于识别“已知用户”的cookie现在可以通过将这些cookie的名称添加到插件配置中的列表中进行修改。使用wpsc_add_cookie($name)添加新的cookie,使用wpsc_delete_cookie($name)删除cookie。cookie名称还会修改插件使用的mod_rewrite规则,但我建议使用简单模式缓存以避免更新.htaccess文件时出现复杂问题。
cookie的名称和值用于区分用户,因此您可以在您的网站上为每种类型的用户设置一个cookie,但是每个用户类型的cookie值可以不同。他们将被提供不同的缓存文件。

请参阅 plugins/searchengine.php 作为我的 No Advertts for Friends 插件使用的示例。

故障排除

如果安装插件后出现问题,请检查以下几点:

  1. wp-content是否可以被Web服务器写入?
  2. 是否存在wp-content/wp-cache-config.php?如果否,请将wp-super-cache/wp-cache-config-sample.php文件复制到wp-content/wp-cache-config.php中,并确保WPCACHEHOME指向正确的位置。
  3. 是否有wp-content/advanced-cache.php?如果没有,那么你必须将wp-super-cache/advanced-cache.php复制到wp-content/。你必须编辑该文件并更改路径,使其指向wp-super-cache文件夹。
  4. 如果页面没有被缓存,请删除wp-content/advanced-cache.php,然后按照上面的建议重新创建。
  5. 确保以下一行位于 wp-config.php 中的 “require_once(ABSPATH.’wp-settings.php’); “行之上:

    define( 'WP_CACHE', true );
    
  6. 尝试转到设置->超级缓存页面,启用缓存。
  7. 查看wp-content/cache/supercache/。是否存在目录和文件?
  8. 您的php error_log中有什么内容吗?
  9. 如果您的浏览器在安装超级缓存后一直要求保存文件,则需要禁用超级缓存压缩。进入设置->超级缓存页面,然后在将其禁用。
  10. 当PHP的安全模式启用时,该插件无法发挥最佳性能运行。您的管理员必须禁用该功能。
  11. 如果页面的缓存有时是随机的,而有时不是,则您的博客可能可以通过带和不带”www”前缀的两种方式进行预览。您应该选择一种方式,并安装Enforce www preference插件,如果您使用的是旧版的WordPress安装。则最新版本的WordPress会自己重定向(无论如何,您都应该运行最新版本的WordPress!)。
  12. Dreamhost 私有服务器的用户如果收到关于增加CPU使用量的错误信息,则应该编辑 wp-content/wp-cache-config.php,并将缓存目录设置为”/tmp/”。更多内容请参阅此讨论
  13. 文件锁定错误,例如“无法获取密钥0x152b:权限被拒绝…”或“ WP Super Cache未缓存页面。无法获取mutex锁”。这表明您可能需要使用文件锁定。编辑wp-content / wp-cache-config.php并取消“ $ use_flock = true”的注释或将$ sem_id设置为其他值。最后,您还可以从“管理”页面禁用文件锁定。
  14. 如果使用粗略的文件锁定,请确保cache/wp_cache_mutex.lock可以被Web服务器写入。
  15. 缓存文件夹不能放在NFS或Samba或NAS共享上。其必须在本地磁盘上。除非缓存文件夹位于本地计算机,否则文件锁定和删除过期文件将无法正常运作。
  16. 如果 WordPress 找不到 wp-cron.php,则旧缓存文件的垃圾回收将不起作用。如果您的主机名解析为 127.0.0.1,可能会导致垃圾回收无法工作。检查访问日志中的 wp-cron.php 条目。它们是否返回 404(未找到文件)或 200 代码?如果是 404 或在任何地方都找不到 wp-cron.php,WordPress 可能在错误的地方寻找该脚本。您应该咨询服务器管理员来纠正这个问题,或者在 Unix 服务器上编辑 /etc/hosts,删除以下一行。您的主机名必须解析到网络/互联网上其他服务器使用的外部 IP 地址。更多信息请参见 http://yoast.com/wp-cron-issues/。像 “127.0.0.1 localhost localhost.localdomain” 这样的行就可以了。

    127.0.0.1 example.com
    
  17. 如果通过超级缓存向您的访问者提供服务的是旧页面,则您可能缺少Apache模块(如果您不使用Apache,则有可能缺少的是其等效模块)。需要这3个模块:mod_mime、mod_headers和mod_expires。最后两个模块对于确保浏览器加载您站点的现有页面的最新版本尤为重要。
  18. 错误信息:”WP Super Cache已安装,但已损坏。wp-content/advanced-cache.php中wp-cache-phase1.php的路径需要修复!”,如果以上错误信息出现在每个页面的最末。可以用您喜欢的编辑器打开wp-content/advanced-cache.php文件。查看wp-cache-phase1.php的路径是否正确?这个文件通常在wp-content/plugins/wp-super-cache/中。如果路径不正确,缓存引擎将无法加载。
  19. 缓存不起作用。重新加载时,博客上的时间戳不断变化。检查.htaccess规则中的路径是否与supercache目录所在的位置匹配。您可能需要对其进行硬编码。尝试禁用超级缓存模式。
  20. 如果超级缓存缓存文件已生成但未提供,请检查所有 wp-content/cache/supercache 文件夹(以及每个 wp-content 缓存和超级缓存文件夹)和 wp-content/cache/.htaccess 的权限。如果 PHP 以不同于 Apache 的用户身份运行,且权限严格控制,则 Apache 可能无法读取 PHP 生成的缓存文件。要解决这个问题,您必须在 wp-config.php 中添加以下一行(添加到 WP_CACHE 定义的上方),然后清除缓存。

    umask( 0022 );
    
  21. 如果在插件中启用压缩功能后在浏览器中看到垃圾信息,则可能是网络服务器已经启用了压缩功能。在 Apache 中,您必须禁用 mod_deflate,或在 PHP 中启用 zlib 压缩。有三种方法可以禁用。如果你有 root 访问权限,编辑 php.ini,找到 zlib.output_compression 设置并确保其为 “关闭”,或者在 .htaccess 中添加此行:

    php_flag zlib.output_compression off
    

    如果那不起作用,将这行代码添加到您的 wp-config.php 文件中:

    ini_set('zlib.output_compression', 0);
    
  22. 当您访问您的站点时,”白屏 “或空白页几乎都是由PHP错误引起的,但也有可能是由APC引起的。如果存在问题,请禁用该PHP扩展,并用eAccelerator或Xcache扩展代替。
  23. 在卸载之后,如果您也删除了WordPress的mod_rewrite规则,您的固定链接可能会被破坏。通过访问 “设置”->”固定链接 “页面并再次保存该表单来重新生成这些规则。
  24. 如果您的博客无法加载,请确认wp-config.php文件内容是否正确。是否缺少开头或结尾的PHP标签?
  25. Your front …

安装

像其他插件一样安装,直接从您的插件页面安装,但请确保您已启用自定义永久链接。转到设置->WP Super Cache插件设置页面,启用缓存。

如何卸载WP Super Cache

你几乎只需在插件页面上停用插件即可。插件应该会清理它创建和修改的大部分文件,但它还不能删除 .htaccess 文件中的 mod_rewrite 规则。在该文件中查找 SuperCache BEGIN 和 END 标记的部分。插件不会删除这些标记,因为有些人也会在这部分添加 WordPress 规则。

手动卸载:

  1. 在插件设置页面上关闭缓存并清除缓存。
  2. 在插件页面上停用插件。
  3. 删除 wp-config.php 中的 WP_CACHE 定义。它看起来像 define( 'WP_CACHE', true );
  4. 删除 .htaccess 文件中的 Super Cache mod_rewrite 规则。
  5. 删除 wp-content/advanced-cache.php 和 wp-content/wp-cache-config.php 文件
  6. 删除这个目录 wp-content/cache/
  7. 从插件目录中删除 wp-super-cache 目录。

如果一切都失败了,您的网站也坏了

  1. 删除 wp-config.php 中的 WP_CACHE 定义。它看起来像 define( 'WP_CACHE', true );
  2. 删除插件写入根目录 .htaccess 文件的规则(见上文)。
  3. 删除插件文件夹中的 wp-super-cache 文件夹。
  4. 可选择删除 advanced-cache.php、wp-cache-config.php 和 wp-content/ 中的缓存文件夹。

常见问题

我怎么知道我的博客被缓存了?

请前往设置 -> WP Super Cache,在简易设置页面上找到”缓存测试器”表单。点击”测试缓存”,插件将会请求网站首页两次,并比较每次请求的时间戳以确保它们匹配。

如果要手动操作,请在插件设置页面中启用调试功能,并在新的浏览器标签页中加载日志文件。然后在登录和注销时查看博客。你应该能在日志中看到活动。查看网站上任何页面的源代码。当页面首次创建时,你会在源代码末尾看到 “Dynamic page generated in XXXX seconds.” 和 “Cached page generated by WP-Super-Cache on YYYY-MM-DD HH:MM:SS”。重新加载时,缓存页面将显示相同的时间戳,因此请等待几秒钟再检查。
如果超级缓存已禁用,且已启用压缩,则会添加 “Compression = gzip”(压缩 = gzip)文本。如果压缩功能被禁用,而页面是作为静态 HTML 文件提供的,则会添加文本 “超级缓存”。检查缓存文件是由 PHP 脚本提供还是来自静态缓存的唯一方法是查看 HTTP 头信息。PHP 缓存页面会有 “WP-Super-Cache:从 PHP 服务超级缓存文件”。WPCache 缓存文件会有 “WP-Super-Cache:Served WPCache 缓存文件”。您还应检查缓存目录 wp-content/cache/supercache/hostname/ 中的静态缓存文件。
如果 .htaccess 文件中缺少插件规则,插件会在找到超级缓存页面时尝试为其提供服务。标题 “WP-Super-Cache:Served supercache file from PHP”。
测试时,Apache 的页面速度模块可能会导致问题。如果在运行缓存测试器时发现任何问题,请禁用该模块。

如何禁用超级缓存?

如果你只想使用WP-Cache引擎,那么请编辑你的wp-config.php文件或创建一个mu插件,将常量’DISABLE_SUPERCACHE’设置为1。

WP-Cache与Supercache文件

所有缓存文件都存储在wp-content/cache/supercache/HOSTNAME/目录中,其中HOSTNAME是您的域名。这些文件存储在与您网站的永久链接结构相匹配的目录中。超级缓存文件的名称为index.html或其变体,具体取决于访问博客的访问者类型。其他文件的名称为wp-cache-XXXXXXXXXXXXXXXXX.php。相关的元文件名以”meta”开头。这些文件包含有关缓存文件的信息。这些文件是由插件中的”WPCache缓存”引擎生成的。

我博客的评论和其他动态的部分会立即更新吗?

根据博客所有者的评论政策,评论一旦经过审核就会公开显示。页面上的其他动态元素可能不会更新,除非这些网页是用Javascript、Flash、Java或其他客户端浏览器语言编写的。该插件真正生成的是静态html页面。当这些页面用于向访问者提供服务时,PHP不会被执行。例如”Popularity Contest”就是这样一个无法运作的插件。

超级缓存压缩会减慢我的服务器速度吗?

不,正好相反。超级缓存文件是以此种方式压缩和存储的,所以强力压缩只需要执行一次。这些文件通常非常小,并可以比未压缩的html更快地发送到访问者的浏览器中。因此,您的服务器花在WEB上的时间请求更少,从而节省了CPU时间和带宽,也可以更快地服务于下一个请求。

如何使页面的某些部分保持动态?

注:该功能默认为禁用。您必须在 “高级设置 “页面将其启用。

有两种方法可以做到这一点。你可以使用 Javascript 来绘制你希望保持动态的页面部分。这就是 Google Adsense 和许多外部网站小部件所做的工作,也是推荐的方式。或者,你也可以使用 WP 超级缓存过滤器来完成这项工作,但你不能使用 mod_rewrite 模式缓存。您必须使用 “简单 “传输方式或禁用超级缓存。

WP Super Cache 1.4 引入了一个名为 wpsc_cachedata 的 cacheaction 过滤器。要显示的缓存页面会经过该过滤器,并允许对页面进行修改。如果页面包含占位符标签,则可使用该过滤器将标签替换为动态生成的 html。
除非使用 late_init 功能,否则与 wpsc_cachedata 过滤器挂钩的函数应放在 WP Super Cache 插件文件夹下的一个文件中。本例中包含一个插件。编辑 dynamic-cache-test.php 查看示例代码。
这里有两个示例函数。其中一个简单的函数是在缓存页面提供时替换你定义的字符串(或标签)。另一个示例函数使用输出缓冲区生成动态内容。由于 PHP 工作方式的限制,输出缓冲区代码必须在 wpsc_cachedata 过滤器运行之前运行,至少在缓存页面时是这样。在提供缓存页面时,这一点并不重要。请参阅这篇文章,了解更多技术性的长篇解释。
要执行 WordPress 功能,必须在高级设置页面启用 “Late init “功能。

如何延迟服务缓存直到触发“init”操作?

缓存文件几乎是在 WordPress 全部加载之前提供的。虽然这对性能很有好处,但当你想使用 WordPress 的核心部分来扩展插件时,这就很麻烦了。在高级设置页面启用 “晚启动 “模式,缓存文件将在 “启动 “时提供。WordPress 及其插件将立即加载。

为什么我的博客现在不能使用或更新WP UserOnline, Popularity Contest, WP Postratings或某插件?

该插件会缓存整个页面,但有些插件认为它们可以在每次加载页面时运行 PHP 代码。要解决这个问题,插件需要使用 Javascript/AJAX 方法或上一个答案中描述的 wpsc_cachedata 过滤器来更新或显示动态信息。

为什么我升级插件时超级缓存插件会消失?

WordPress在更新插件时会删除插件文件夹。WP Super Cache也是如此,因此在wp-super-cache/plugins/中的任何修改过的文件都将被删除。您可以通过多种方式将自定义插件放在不同的目录中。您可以在wp-config.php或wp-content/wp-cache-config.php中定义变量$wp_cache_plugins_dir,并将其指向wp-super-cache文件夹之外的目录。插件将在那里查找它的插件。或者,如果您分发一个需要早期加载的插件,您可以使用函数wpsc_add_plugin( $filename )将新插件添加到任何位置。使用wpsc_delete_plugin( $filename )来删除插件文件。请参阅#574此文章以了解如何编写WP Super Cache插件。

缓存重建功能有什么作用?

当访问者发表评论时,该页面的缓存文件将被删除,下一位访问者将重新创建缓存页面。页面加载需要时间,如果在此期间有 100 位访客访问,会发生什么情况?因为没有缓存页面,所以 WordPress 会为每个用户提供一个新的页面,而插件会尝试为这 100 个访客中的每个人创建一个缓存页面,从而对服务器造成巨大的负载。这项功能可以阻止这种情况发生。发表评论时,缓存页面不会被清除。而是标记为重建。在接下来的 10 秒内,下一位访客将重新生成缓存页面,而旧页面将提供给其他 99 位访客。页面最终会被第一个访客加载,并更新缓存页面。更多信息,请参阅本帖

为什么插件默认不缓存搜索引擎蜘蛛的请求?

这些机器人通常只访问每个页面一次,如果页面不受欢迎,就没有必要创建一个在服务器上闲置的缓存文件。不过,你可以在高级设置页面的 “拒绝用户代理 “中删除僵尸列表,从而允许这些访问被缓存。

我的主页上显示的是分类页,而不是我的主页。

极少数网站在使用以下配置时会出现问题:

  1. 使用静态页面作为首页。
  2. 可以使用”/%category%/%postname%/ permalink”的固定链接形式。

有时,分类页面会被缓存为网站的主页,而不是静态页面。我无法复制这个问题,但一个简单的解决办法是使用 “简单 “模式。您也可以在高级设置页面启用 “额外主页检查”。

为什么我收到来自http://ismyblogworking.com/ 的有关缓存的警告?

“您的博客不支持客户端缓存(对 If-modified-since 没有 304 响应)”。
“您的 feed 不支持缓存(没有对 If-modified-since 的 304 响应)”

超级缓存在专家模式下不支持 304 标头检查,但在简单模式下支持。这是由浏览器而不是服务器进行的缓存。它是浏览器询问服务器当前页面是否有更新版本的检查。如果没有,浏览器就不会再下载旧版本。页面仍然会被服务器缓存,只是不会被访问者的浏览器缓存。
请尝试使用 http://www.ircache.net/cgi-bin/cacheability.py 或 https://redbot.org/ 上的缓存引擎进行进一步分析。

我应如何通过此插件充分使用Google Analytics中的utm_source跟踪工具?

这种跟踪方法会在从 Twitter 和 feedreaders 等各种来源链接的每个 url 上添加一个查询字符串。遗憾的是,它阻止了页面被超级缓存。请参阅Joost 在此的评论,了解如何将其转化为可被超级缓存的锚标签。

插件警告wp-content是可写的!Htdocs是可写的!

网络服务器可以写入这些目录的情况并不好,但有时共享主机账户会以这种方式设置,以方便管理。使用 chmod 755 directory 修正权限,或查找 ftp 客户端的权限部分。谷歌搜索将为您提供有关此主题的更多信息,此外还有代码集页面。遗憾的是,有些主机要求这些目录是可写的。如果是这种情况,请忽略此警告。

如何删除wp-config.php中定义的WP_CACHE常量?

加载桌面 ftp 客户端并连接到你的网站。导航到网站的根目录(或其下的目录),在那里可以找到 wp-config.php。下载该文件并用文本编辑器编辑。删除 define( 'WP_CACHE', true ); 行并保存文件。现在上传该文件,覆盖服务器上的 wp-config.php。

如何从.htaccess文件中删除超级缓存规则?

加载桌面 ftp 客户端并连接到您的网站。您可能需要在 ftp 客户端的首选项中启用 “显示隐藏文件”。导航到网站根目录,找到 .htaccess 文件。下载该文件并用文本编辑器编辑。删除 “# BEGIN WPSuperCache “和 “# END WPSuperCache “之间的行并保存文件。现在上传该文件,覆盖服务器上的 .htaccess 文件。

如何更改文件权限?

WordPress Codex 上的页面介绍了有关服务器上文件权限的所有知识以及更改权限的各种方法。

为什么我在撰写文章的时候会显示负载过高?

您可能已经设置了“在发布新文章时清除所有缓存文件”的选项。清除这些文件可能需要一些时间,而且您的访问者将会访问未缓存的页面。您是否在URL中使用了Google Analytics的utm_source跟踪功能?这些页面不会被缓存。请参考上面的问题“如何正确使用Google Analytics中的utm_source跟踪工具”来了解如何正确使用它们。

当发布文章时,缓存页面必须被刷新。也许您的服务器无法处理您所获得的访问量。启用“缓存重建”功能可能会有所帮助。

我可以缓存多少页面?

唯一真正的限制是服务器规定的限制。例如,EXT2 和 EXT3 最多允许 31,999 个子目录,因此如果您有一个扁平的永久链接结构(如 /%POSTNAME%/)和超过 32,000 个帖子,您可能会遇到问题。同样,如果您运行的是多站点网络,并且拥有超过 31999 个站点(博客),那么您将无法缓存所有这些站点。实际上,如果您有这么多活跃网站,您就不可能在一台服务器上运行了。

我可以看到我网站的 www 版本是单独缓存的。 如何停止呢?

WordPress应该重定向到您网站的规范URL,但如果没有,将以下内容添加到您的.htaccess文件中,位于Supercache和WordPress规则之上。将example.com更改为您自己的主机名。
RewriteCond %{HTTP_HOST} www.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

如何在手机、平板电脑等小屏幕上为客户提供缓存的移动版页面?

您的主题可能是响应式的,这意味着它会根据显示页面的设备自动调整页面大小。如果不是响应式的,您将需要使用单独的移动插件来呈现适用于移动访问者的页面格式。以下插件已经经过测试,但根据移动客户端的不同,效果可能会有所不同。您还需要在高级设置页面上启用移动浏览器支持。

评价

2024 年 3 月 27 日
Updated 2024 After a lot of turbulances all these years, now it seems to be much better at last. Preload also works as expected :). It took several years for that 🙂 Jetpack should not be promoted in the WP Supercache plugin. Jetpack is Not good at all.
2024 年 3 月 17 日 1 回复
A simple and powerful extension that remarkably improves the speed of my site. I recommend it to wordpress site developers.
2024 年 1 月 7 日 1 回复
Hello, the cache preload function works fine, after preload all pages it seems to delete the cache and start over. I want the cache to be cleared only on page and product updates. How can I solve this problem please help.
阅读所有1,332条评价

贡献者及开发者

“WP Super Cache” 是开源软件。 以下人员对此插件做出了贡献。

贡献者

「WP Super Cache」插件已被翻译至 31 种本地化语言。 感谢所有译者为本插件所做的贡献。

将“WP Super Cache”翻译成您的语言。

对开发感兴趣吗?

您可以浏览代码,查看SVN仓库,或通过RSS订阅开发日志

更新日志

1.12.0 – 2024-03-11

Added

  • Setup: Detect Jetpack Boost cache and suggest troubleshooting steps
  • WP Super Cache: added WPSC_PRELOAD_POST_INTERVAL and WPSC_PRELOAD_LOOP_INTERVAL to modify preload timings

Changed

  • Code Modernization: Replace usage of strpos() with str_contains()
  • Code Modernization: Replace usage of strpos() with str_starts_with().
  • Code Modernization: Replace usage of substr() with str_starts_with() and str_ends_with().
  • Fix blurry Automattic logo.
  • General: avoid deprecation warnings when trying to get URLs in PHP 8.2
  • General: indicate compatibility with the upcoming version of WordPress, 6.5.
  • General: updated PHP requirement to PHP 7.0+
  • General: update WordPress version requirements to WordPress 6.3.
  • WP Super Cache: check for Boost Cache when creating advanced-cache.php
  • WP Super Cache: fixed labels on advanced settings page
  • WP Super Cache: remove notifications that preload started working again.

Fixed

  • Supercache: add “days” to “Next preload scheduled” message.
  • Super Cache: with rebuild enabled, apply that to subdirectories instead of deleting them.
  • WP Super Cache – fix the wp_super_cache_clear_post_cache filter so the homepage cache isn’t deleted too.
  • WP Super Cache: bail if the request uri isn’t set. It means the plugin isn’t configured yet.
  • WP Super Cache: don’t create an output buffer if there’s already one active
  • WP Super Cache: fixed serving a cached page on POST with late init enabled.
  • WP Super Cache: fix the output buffer check, and make debug logs pre-formatted.
  • WP Super Cache: if the preload number of posts is not in the list, then add it

在此查看以前的更新日志