目录
创建 Transient
检索 Transient
删除 Transient
检索和缓存特定类别的帖子
总结
关于 WordPress Transients API 的常见问题解答 (FAQ)
使用 WordPress Transients API 的主要目的是什么?
WordPress Transients API 如何提高网站性能?
我可以将 WordPress Transients API 用于永久数据存储吗?
如何在 WordPress 中删除 transient?
如果我尝试检索已过期的 transient 会发生什么?
我可以将 transient 设置为永不过期吗?
如何在 WordPress 中管理和删除 transients?
我可以在多站点安装中使用 WordPress Transients API 吗?
transient 和 cookie 之间有什么区别?
我可以使用 WordPress Transients API 存储数组或对象吗?
首页 CMS教程 &#&按 WordPress瞬态API的完整指南

WordPress瞬态API的完整指南

Feb 17, 2025 pm 12:19 PM

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1313
25
PHP教程
1266
29
C# 教程
1239
24
如何开始WordPress博客:初学者的分步指南 如何开始WordPress博客:初学者的分步指南 Apr 17, 2025 am 08:25 AM

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

wordpress文章列表怎么调 wordpress文章列表怎么调 Apr 20, 2025 am 10:48 AM

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

如何在 WordPress 中获取登录用户信息以获得个性化结果 如何在 WordPress 中获取登录用户信息以获得个性化结果 Apr 19, 2025 pm 11:57 PM

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

如何在父分类的存档页面上显示子分类 如何在父分类的存档页面上显示子分类 Apr 19, 2025 pm 11:54 PM

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

如何在 WordPress 中按帖子过期日期对帖子进行排序 如何在 WordPress 中按帖子过期日期对帖子进行排序 Apr 19, 2025 pm 11:48 PM

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) 如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) Apr 18, 2025 am 11:27 AM

您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre

如何在 WordPress 中显示查询数量和页面加载时间 如何在 WordPress 中显示查询数量和页面加载时间 Apr 19, 2025 pm 11:51 PM

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

wordpress主机怎么建站 wordpress主机怎么建站 Apr 20, 2025 am 11:12 AM

要使用 WordPress 主机建站,需要:选择一个可靠的主机提供商。购买一个域名。设置 WordPress 主机帐户。选择一个主题。添加页面和文章。安装插件。自定义您的网站。发布您的网站。

See all articles