如何在WordPress插件的SQL数据库中缓存第三方API访问

塞缪尔·埃尔(Samuel Elh)

有什么方法可以缓存WordPress插件的数据吗?我已经准备好使用第三方API对YouTube API V3的访问权限,并且我需要应用缓存以进行优化并将匹配数保持在配额以下。

假设我有这个功能:

function popular_uploads() {
        $url = 'https://www.googleapis.com/youtube/v3/search?order=viewCount&part=snippet&channelId='. channel_id(). '&maxResults=5&key={key}&type=video';
        $json = file_get_contents($url);
        $json_data = json_decode($json, false);
        foreach ( $json_data->items as $item ) {
            $id = $item->id->videoId;
            echo '<iframe id="ytplayer" type="text/html" width="auto" height="auto" 
                src="//www.youtube.com/embed/' . $id . '?rel=0&showinfo=1"
                frameborder="0" allowfullscreen></iframe>';
        }
}

我如何在数据库中缓存数据一段时间?我真的是这个过程的新手,我已经查找了它,却找不到解决方法。

非常感谢您对初学者的帮助!

问候。

编辑:

我遵循了简单PHP缓存文章中的所有步骤,唯一的困难是实现以下代码:

<?php
// Some query
$q = mysql_query("SELECT * FROM articles ORDER BY id");
while ($r = mysql_fetch_array($q)) {
  echo '<li><a href="view_article.php?id='.$r['id'].'">'.$r['title'].'</a></li>';
}
?>
本·科尔

您应该利用WordPress Transients API来存储临时的可缓存数据。

这使您可以保存一个值,以及该值应缓存的时间量。这是一个如何与您的函数一起工作的示例:

function popular_uploads() {

    // Try to retrieve saved data from the cache
    $json_data = get_transient('my_unique_identifier');

    // If no saved data exists in the cache
    if ($json_data === false) {

        // Fetch new data from remote URL
        $url = 'https://www.googleapis.com/youtube/v3/search?order=viewCount&part=snippet&channelId='. channel_id(). '&maxResults=5&key={key}&type=video';
        $json = file_get_contents($url);
        $json_data = json_decode($json, false);

        // Save the data in the cache, let it live for up to 1 hour (3600 seconds)
        set_transient('my_unique_identifier', $json_data, 3600);
    }

    foreach ( $json_data->items as $item ) {
        $id = $item->id->videoId;
        echo '<iframe id="ytplayer" type="text/html" width="auto" height="auto" 
            src="//www.youtube.com/embed/' . $id . '?rel=0&showinfo=1"
            frameborder="0" allowfullscreen></iframe>';
    }

}

通过使用Transients API,您可以让WordPress决定存储值的最佳方式(在数据库中或某种类型的缓存中)。从文档中

...暂时性是由缓存插件加速的,而普通的Option则没有。例如,一个memcached插件将使WordPress将瞬态值存储在快速内存中,而不是存储在数据库中。因此,应该使用瞬态来存储任何预期将要到期的数据,或者可以随时到期的数据。暂态也不应被假定为存在于数据库中,因为它们可能根本不存储在数据库中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在第三方库中访问金字塔数据库会话

来自分类Dev

如何使用 Access 访问第三方数据库

来自分类Dev

如何使用Pymysql / Python从第三方API将数据插入数据库?

来自分类Dev

如何在 web api 或库中包装第三方对象?

来自分类Dev

ImageJ:如何使用第三方插件API?

来自分类Dev

Django:访问第三方应用程序数据库

来自分类Dev

如何从第三方数据库复制数据而没有副作用

来自分类Dev

将第三方服务器中的对象ID用作SQL数据库的PK是否很好?

来自分类Dev

如何永远运行流星?使用第三方数据库是否很好?

来自分类Dev

如何自动从第三方网站对网站进行数据库搜索?

来自分类Dev

如何在由第三方库调用的回调函数中传递/使对象/变量可访问?

来自分类Dev

如何在Angular 2中封装第三方插件逻辑?

来自分类Dev

如何将Codeigniter中的sendgrid api库用作第三方库

来自分类Dev

您如何在Meteor.js中包含第三方JavaScript库?

来自分类Dev

如何在CMake中链接第三方库(LibUSB)

来自分类Dev

如何在ionic 2中使用第三方javascript库(pixijs)?

来自分类Dev

如何在Android cmake外部构建系统中链接第三方库?

来自分类Dev

如何在React Native中抑制由于第三方PropTypes库引起的警告

来自分类Dev

如何在ReactJS应用中插入第三方库

来自分类Dev

如何在Meteor.js中包含第三方JavaScript库?

来自分类Dev

如何在Xcode 6.0中构建和包含第三方C库

来自分类Dev

如何在MVC 5中包含第三方API-Riot Games

来自分类Dev

如何获取存储在 xml 文件中的数据库中的 orbeon 表单(yform)数据?如何将其发送到第三方应用程序?

来自分类Dev

如何安装第三方Rhythmbox插件?

来自分类Dev

如何调试第三方Gradle插件?

来自分类Dev

如何调试第三方Flutter插件

来自分类Dev

如何安装第三方Rhythmbox插件?

来自分类Dev

在Flutter中编辑第三方插件

来自分类Dev

在不使用第三方工具的情况下从实体框架中的数据库更新模块

Related 相关文章

  1. 1

    在第三方库中访问金字塔数据库会话

  2. 2

    如何使用 Access 访问第三方数据库

  3. 3

    如何使用Pymysql / Python从第三方API将数据插入数据库?

  4. 4

    如何在 web api 或库中包装第三方对象?

  5. 5

    ImageJ:如何使用第三方插件API?

  6. 6

    Django:访问第三方应用程序数据库

  7. 7

    如何从第三方数据库复制数据而没有副作用

  8. 8

    将第三方服务器中的对象ID用作SQL数据库的PK是否很好?

  9. 9

    如何永远运行流星?使用第三方数据库是否很好?

  10. 10

    如何自动从第三方网站对网站进行数据库搜索?

  11. 11

    如何在由第三方库调用的回调函数中传递/使对象/变量可访问?

  12. 12

    如何在Angular 2中封装第三方插件逻辑?

  13. 13

    如何将Codeigniter中的sendgrid api库用作第三方库

  14. 14

    您如何在Meteor.js中包含第三方JavaScript库?

  15. 15

    如何在CMake中链接第三方库(LibUSB)

  16. 16

    如何在ionic 2中使用第三方javascript库(pixijs)?

  17. 17

    如何在Android cmake外部构建系统中链接第三方库?

  18. 18

    如何在React Native中抑制由于第三方PropTypes库引起的警告

  19. 19

    如何在ReactJS应用中插入第三方库

  20. 20

    如何在Meteor.js中包含第三方JavaScript库?

  21. 21

    如何在Xcode 6.0中构建和包含第三方C库

  22. 22

    如何在MVC 5中包含第三方API-Riot Games

  23. 23

    如何获取存储在 xml 文件中的数据库中的 orbeon 表单(yform)数据?如何将其发送到第三方应用程序?

  24. 24

    如何安装第三方Rhythmbox插件?

  25. 25

    如何调试第三方Gradle插件?

  26. 26

    如何调试第三方Flutter插件

  27. 27

    如何安装第三方Rhythmbox插件?

  28. 28

    在Flutter中编辑第三方插件

  29. 29

    在不使用第三方工具的情况下从实体框架中的数据库更新模块

热门标签

归档