ライブラリ システムと統合するための WordPress プラグインを作成しています。データベースを検索するための検索フォームを含むページを作成しようとしています。ライブラリ サーバー (ローカル ネットワーク上) に API を作成し、サイトがライブラリ バックエンドとやり取りできるようにしました。
API から取得した結果をページ分割しようとしています。データは json です。API から json を取得して PHP 配列に変換する次のコードを作成しましたが、まだ検索を実装していません。
add_shortcode("book_search_form", "book_search_form");
function book_search_form() {
$api_url = get_option('api_url');
$api_key = get_option('api_key');
$data = file_get_contents("$api_url/book/index.php/name/awesome/$api_key");
$data = (array)json_decode($data, true);
echo '<pre>';
var_dump($data);
echo '</pre>';
}
出力は次のとおりです。
array(2) {
[0]=>
array(22) {
["barcode"]=>
string(12) "000015427928"
["name"]=>
string(74) "Janice VanCleave's 201 awesome, magical, bizarre & incredible experiments."
["author"]=>
string(12) "Janice Pratt"
["author_last"]=>
string(9) "VanCleave"
["publisher"]=>
string(11) "Wiley: 1994"
["year_pub"]=>
string(0) ""
["edition"]=>
string(0) ""
["genre"]=>
string(0) ""
["checkout"]=>
string(5) "false"
["series"]=>
string(0) ""
["callnum"]=>
string(5) "507.8"
["fiction"]=>
string(5) "false"
["in_house"]=>
string(5) "false"
["timestamp"]=>
string(10) "1374711656"
["outto"]=>
string(0) ""
["duedate"]=>
string(1) "0"
["ISBN"]=>
string(10) "0585339376"
["media_type"]=>
string(0) ""
["print"]=>
string(5) "false"
["BOXID"]=>
string(0) ""
["uid"]=>
string(1) "0"
["printed"]=>
string(4) "true"
}
[1]=>
array(22) {
["barcode"]=>
string(12) "000015429634"
["name"]=>
string(50) "Our Awesome Earth: Its Mysteries and Its Splendors"
["author"]=>
string(4) "Paul"
["author_last"]=>
string(6) "Martin"
["publisher"]=>
string(35) "Natl Geographic Society: March 1994"
["year_pub"]=>
string(0) ""
["edition"]=>
string(0) ""
["genre"]=>
string(0) ""
["checkout"]=>
string(5) "false"
["series"]=>
string(0) ""
["callnum"]=>
string(3) "050"
["fiction"]=>
string(5) "false"
["in_house"]=>
string(5) "false"
["timestamp"]=>
string(10) "1382550052"
["outto"]=>
string(0) ""
["duedate"]=>
string(1) "0"
["ISBN"]=>
string(10) "0870445456"
["media_type"]=>
string(0) ""
["print"]=>
string(5) "false"
["BOXID"]=>
string(0) ""
["uid"]=>
string(1) "0"
["printed"]=>
string(5) "false"
}
}
一部のクエリには 50 冊以上の書籍が含まれているため、ページネーションを作成しようとしています。以前にmysqlでこれを行ったことがありますが、配列で行う方法がわかりません。
ありがとう!