【问题标题】:How to save XML API data to database in WordPress once an hour for later use?如何每小时一次将 XML API 数据保存到 WordPress 中的数据库以备后用?
【发布时间】:2013-02-12 04:54:03
【问题描述】:

我为 PAWS New England 管理网站,这是一个严重依赖 PetFinder 的动物救援组织。虽然 PetFinder 提供了一个基于 iframe 的小部件来显示您可用的动物,但它打破了网站在较小屏幕上的响应式设计。

因此,我使用 PetFinder 的 API(基于 XML)构建了自定义“我们的狗”页面。

不幸的是,API 有时运行速度很慢。我想每小时从 API 中提取一次数据并将其存储在站点的 mySQL 数据库中(它由 WordPress 提供支持),然后运行自定义页面而不是实时 API 数据。 WordPress 的“Transient API”看起来非常合适,但我终其一生都想不出如何让它发挥作用。

经过一番搜索,似乎问题可能在于 PHP 存储 XML 数据的能力(或缺乏能力)。换句话说,我可能需要先将数据转换为字符串或数组。

我现在正式陷入困境。任何人都对如何将 XML 数据每小时保存到 WordPress 数据库并访问该数据以在函数中使用有任何见解?

这是我现有的代码。提前致谢!

<?php

function petf_shelter_list( $atts ) {

    extract( shortcode_atts( array(
        'shelter_id' => '1234',
        'api_key' => 'abcdef',
        'count' => 150,
        'status' => 'A'
    ), $atts ) );

    $xml = simplexml_load_file( "http://api.petfinder.com/shelter.getPets?key=" . $api_key . "&count=" . intval($count) . "&id=" . $shelter_id . "&status=" . $status . "&output=full" );

    // Stuff I do with $xml here...

}

add_shortcode('shelter_list','petf_shelter_list');

?>

【问题讨论】:

  • 如果您的托管服务提供商允许,您可以设置一个 cron 作业。

标签: php xml wordpress


【解决方案1】:

您可以使用PHP's XML Parser 来处理您的问题的 XML 部分。

至于每小时运行一次,你需要设置一个 cron 作业来执行你想要的脚本。

【讨论】:

  • 这是一个好的开始。谢谢@mcryan。我会尝试一些事情并报告结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多