如何在一小时内将XML API数据保存到WordPress中的数据库以供以后使用?

时间:2013-02-26 16:26:50

标签: php xml wordpress

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

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

不幸的是,API有时会运行得很慢。我想每小时从API中提取一次数据并将其存储在网站的mySQL数据库(由WordPress提供支持)上,然后运行自定义页面而不是实时API数据。 WordPress的“瞬态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');

?>

1 个答案:

答案 0 :(得分:1)

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

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