1

PetFinder に大きく依存している動物救助組織、PAWS New England の Web サイトを管理しています。PetFinder は利用可能な動物を表示するための iframe ベースのウィジェットを提供していますが、小さな画面ではサイトのレスポンシブ デザインが損なわれます。

このため、PetFinder の API (XML ベース) を使用してカスタムの「Our Dogs」ページを作成しました。

残念ながら、API の実行が非常に遅くなることがあります。API から 1 時間に 1 回データを取得し、サイトの mySQL データベース (WordPress を使用) に保存し、ライブ API データの代わりにカスタム ページを実行したいと考えています。WordPress の「Transient API」は完璧にフィットするように思えますが、どうすれば機能するのか、一生わかりません。

いくつかの検索の後、問題は XML データを格納する PHP の機能 (またはその機能の欠如) にあるようです。つまり、最初にデータを文字列または配列に変換する必要がある場合があります。

私は今公式に立ち往生しています。XML データを WordPress データベースに 1 回および 1 時間に 1 回保存し、そのデータにアクセスして関数で使用する方法について何か洞察を持っている人はいますか?

これが私の既存のコードです。前もって感謝します!

<?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');

?>
4

1 に答える 1

1

PHPのXMLパーサーを使用して、問題のXML部分を処理できます。

1時間ごとに何かを実行する場合は、目的のスクリプトを実行するためにcronジョブを設定する必要があります。

于 2013-02-26T16:51:42.313 に答える