搜索
首页CMS教程WordPressWordPress瞬态API的完整指南

WordPress 的 Transients API 自 2.8 版本起就已支持,但许多 WordPress 开发者仍未意识到它的存在及其用途。简而言之,WordPress Transients API 允许我们存储具有过期时间的键值对数据。

本教程将深入讲解如何使用此 API。我们还将了解它与 Options API 的区别,它如何与 WordPress 缓存系统交互以及一些用例。

The Complete Guide to the WordPress Transients API ### Options API 与 Transients API 的比较

大多数 WordPress 开发者都了解 WordPress Options API。Options API 允许我们将键值对数据永久存储在数据库中。许多 WordPress 开发者没有意识到的是,Options API 实现了一个缓存层(即 WordPress 对象缓存)来缓存选项。如果未启用持久缓存,则每次 HTTP 请求都会创建一个新的缓存会话,否则 Options API 将使用持久缓存。

几乎每个 WordPress API 都使用 WordPress 对象缓存与 MySQL 交互,以缓存数据以防止多次 MySQL 查询。

Transients API 的工作方式与所有其他 API 略有不同。它仅当未启用持久缓存时才将键值对数据存储在 MySQL 中,否则它仅使用对象缓存。而所有其他 API 都使用两者来同步数据,以确保数据的持久性。因此,Transients 不是持久的,即不应将其用于存储关键数据。因此,Transients API 非常适合缓存数据。

注意:如果未启用持久缓存,则 Transients API 使用 Options API 来存储键值对数据,否则它直接使用对象缓存。Transients 存储在 Options 表中。每个 transient 由两个选项组成,即键值对数据和键值对过期日期。

创建 Transient

要设置 transient,我们需要使用 set_transient() 函数。此函数采用三个参数:

  1. Transient 名称(必需):必须是字符串。字符串长度不能超过 40 个字符,否则将无法创建 transient。
  2. Transient 值(必需):必须是字符串。如果您传递对象或数组,则会将其序列化,即转换为字符串。
  3. 过期秒数(可选):transient 将在其中过期的秒数。transient 也可能在过期时间之前过期,因为缓存的数据(即存储在对象缓存中的数据)是易失的。

以下是使用 set_transient() 函数的代码示例:

set_transient("Website", "SitePoint", 3600);

在这里,我们将名为“Website”的键与值为“SitePoint”的值存储 1 小时。1 小时后,该键将不再可访问。

set_transient 如果 transient 成功创建则返回 true,否则返回 false。

如果您没有提供过期时间或提供“0”作为过期时间,则它永远不会使 transient 过期。

注意:如果未提供过期时间或过期时间为“0”,则 transients 会自动加载(即在请求页面时加载到内存中)。

Transients API 还提供另一个函数来创建 transient,即 set_site_transient。它也采用与 set_transient 相同的三个参数。它们之间的大部分功能都是相同的。set_transientset_site_transient 之间的区别在于:

  1. set_site_transient 用于多站点网络时,transient 可用于网络中的所有站点。
  2. 无论是否有过期时间,使用 set_site_transient 创建的 transients 始终自动加载。

最后,如果您运行现有 transient 键的 set_transient,则值和过期时间将更新为新提供的值和过期时间。过期时间是从首次设置 transient 时计算的。

检索 Transient

要检索存储的 transient,您需要使用 get_transient 函数。它只接受一个参数,即 transient 的名称。

set_transient("Website", "SitePoint", 3600);

如果 transient 已过期或不存在,则 get_transient 返回 false。否则,它返回 transient 的值。

如果 transient 已过期或未找到,则会返回 false,因此您永远不应在 transient 中存储布尔值。如果您想存储布尔值,请使用整数形式,即 0 或 1。

如果您已使用 set_site_transient 设置了 transient,请使用 get_site_transient 来检索它,而不是 get_transient

删除 Transient

要删除 transient,您需要使用 delete_transient 函数。它只接受一个参数,即 transient 的名称。

这是一个示例:

$value = get_transient("Website");

if($value === false)
{
    echo "Expired or not found";
}

如果 transient 成功删除,则返回 true。如果找不到 transient 或由于其他原因无法删除 transient,则返回 false。

如果您已使用 set_site_transient 设置了 transient,请使用 delete_site_transient 来删除它,而不是 delete_transient

检索和缓存特定类别的帖子

Transients API 可用于缓存任何内容。大多数插件都使用此 API 来缓存数据。为了举例说明,让我们看看如何检索和缓存类别的帖子。

delete_transient("Website");

在这里,我们缓存类别帖子 1 小时。我们使用 WP_Query 类检索帖子。WP_Query 被序列化并存储为 transient。检索时,它会被反序列化。

总结

本文演示了我们如何轻松地使用 Transients API 在 WordPress 中缓存数据。

您可以使用 Memcached 对象缓存或 WP Redis 插件在 WordPress 中启用持久缓存。

请在下面的评论中告诉我您使用此 API 的经验。

关于 WordPress Transients API 的常见问题解答 (FAQ)

使用 WordPress Transients API 的主要目的是什么?

使用 WordPress Transients API 的主要目的是存储临时数据,这有助于加快 WordPress 网站的速度。它允许开发人员存储具有过期时间的 data。此数据可以是任何内容,从复杂的数据库查询结果到简单的字符串值。通过存储此数据,您的 WordPress 网站可以快速检索它,而无需每次都重新生成它,从而提高网站的性能。

WordPress Transients API 如何提高网站性能?

WordPress Transients API 通过减少数据库查询次数来提高网站性能。当使用 Transients API 存储数据时,可以从缓存中快速检索它,而无需执行新的数据库查询。这大大减少了服务器的负载并加快了页面加载时间,从而提供了更好的用户体验。

我可以将 WordPress Transients API 用于永久数据存储吗?

不可以,WordPress Transients API 不是为永久数据存储设计的。使用 Transients API 存储的数据是临时的,并且有过期时间。数据过期后,它会自动从缓存中删除。如果您需要永久存储数据,则应使用其他 WordPress API,例如 Options API。

如何在 WordPress 中删除 transient?

您可以使用 delete_transient 函数在 WordPress 中删除 transient。此函数将 transient 的名称作为其参数。这是一个例子:

delete_transient( 'my_transient' );

在此示例中,“my_transient”是要删除的 transient 的名称。

如果我尝试检索已过期的 transient 会发生什么?

如果您尝试检索已过期的 transient,WordPress Transients API 将返回 false。这是因为数据一旦过期就会自动从缓存中删除。在尝试使用数据之前,您应该始终检查 transient 是否仍然有效。

我可以将 transient 设置为永不过期吗?

虽然您可以通过为其提供非常长的过期时间来技术性地将 transient 设置为永不过期,但不建议这样做。Transients 用于临时数据存储,将其设置为永不过期可能会导致缓存中不必要的数据累积。

如何在 WordPress 中管理和删除 transients?

您可以使用各种插件(如 Transient Manager、WP-Optimize 和 Transients Manager)在 WordPress 中管理和删除 transients。这些插件提供了一个用户友好的界面来查看、删除和管理所有 transients。

我可以在多站点安装中使用 WordPress Transients API 吗?

是的,您可以在多站点安装中使用 WordPress Transients API。但是,您应该使用 set_site_transientget_site_transient 函数,而不是 set_transientget_transient。这些函数可在整个站点网络中使用。

transient 和 cookie 的用途不同。transient 用于在服务器端存储临时数据以提高网站性能。另一方面,cookie 用于在客户端存储数据,通常用于记住用户偏好和会话。

我可以使用 WordPress Transients API 存储数组或对象吗?

是的,您可以使用 WordPress Transients API 存储数组或对象。API 会自动为您序列化这些数据类型,因此您可以将它们存储为 transients 并稍后检索它们,而不会出现任何问题。

This revised output maintains the original meaning while using different wording and sentence structures. The image remains in its original format and location.

以上是WordPress瞬态API的完整指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何使用WordPress插件嵌入和保护PDF文件如何使用WordPress插件嵌入和保护PDF文件Mar 09, 2025 am 11:08 AM

本指南演示了如何使用WordPress PDF插件在WordPress帖子和页面中嵌入和保护PDF文件。 PDFS为从目录到演示文稿提供了一种用户友好的,普遍访问的格式。 此方法ENS

对于初学者来说,WordPress容易吗?对于初学者来说,WordPress容易吗?Apr 03, 2025 am 12:02 AM

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

为什么有人会使用WordPress?为什么有人会使用WordPress?Apr 02, 2025 pm 02:57 PM

人们选择使用WordPress是因为其强大和灵活性。1)WordPress是一个开源的CMS,易用性和可扩展性强,适合各种网站需求。2)它有丰富的主题和插件,生态系统庞大,社区支持强大。3)WordPress的工作原理基于主题、插件和核心功能,使用PHP和MySQL处理数据,支持性能优化。

WordPress仍然免费吗?WordPress仍然免费吗?Apr 04, 2025 am 12:06 AM

WordPress核心版本是免费的,但使用过程中可能产生其他费用。1.域名和托管服务需要付费。2.高级主题和插件可能需要付费。3.专业服务和高级功能可能需要付费。

WordPress的成本是多少?WordPress的成本是多少?Apr 05, 2025 am 12:13 AM

WordPress本身免费,但使用需额外费用:1.WordPress.com提供从免费到付费的套餐,价格从每月几美元到几十美元不等;2.WordPress.org需购买域名(每年10-20美元)和托管服务(每月5-50美元);3.插件和主题多数免费,付费的价格在几十到几百美元之间;通过选择合适的托管服务、合理使用插件和主题、定期维护和优化,可以有效控制和优化WordPress的成本。

WordPress有什么用?WordPress有什么用?Apr 07, 2025 am 12:06 AM

wordpressgood forvortalyanewebprojectDuetoItsAsatilityAsacms.itexcelsin:1)用户友好性,允许Aeserywebsitesetup; 2)sexibility andcustomized andcustomization and numerthemesandplugins; 3)seoop timigimization; and4)and4)

我应该使用Wix或WordPress吗?我应该使用Wix或WordPress吗?Apr 06, 2025 am 12:11 AM

Wix适合没有编程经验的用户,WordPress适合希望有更多控制和扩展能力的用户。1)Wix提供拖放式编辑器和丰富模板,易于快速搭建网站。2)WordPress作为开源CMS,拥有庞大社区和插件生态,支持深度自定义和扩展。

WordPress是CMS吗?WordPress是CMS吗?Apr 08, 2025 am 12:02 AM

WordPress是内容管理系统(CMS)。它提供内容管理、用户管理、主题和插件功能,支持创建和管理网站内容。其工作原理包括数据库管理、模板系统和插件架构,适用于从博客到企业网站的各种需求。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。