WordPressサイトにPHPでJSONデータを取得/ウェブスクレイピング
作業中メモ
1-1.まずはPHPでJSONデータを取得する方法を調べて試す。
PHPの環境作りから始める
→練習用サイトがそのまま使えた!
別サブドメインのディレクトリ内にあるJSONファイルを読み込むにはどうしたらいいか
・JSONファイルを一旦練習用サイトに移す?→できた
・JSONファイルを一旦ニフクラにインポート?
・サーバ側のアクセス権設定又は認証?APIへ?→サーバ上のJSONファイルはアクセス権が設定されていなかったので、URLで指定できた!
配列の番号を指定することで、データを取り出す方法はわかった。
他方、取り出したいデータの配列の番号が分からず、
データに付けられたIDを指定するにはどうしたらよいか?
案1:IDを順に読み込んで、取り出したいID番号と一致するまでループを回す?
その配列番号のデータを取り出す?
案2:データのIDを指定することで、ループを回さずにデータを取り出す。
案2の方法が以下の記事に載っていた。
PHP多次元配列、特定キーの値を検索しindexを取得する(ループ不要) - 現役プログラマのWordPressカスタマイズ相談
→できた! ただし、同じIDで複数の値がある場合に、複数の中から選び出す処理が要る。。
JSONファイル形式が変わらない限り、変更不要。
【php】webサイトから、欲しい情報を3行で取得する方法 - Qiita
→
スクレイピング用の「phpQuery-onefile.php」を所定のディレクトリにあpアップロード
できた!スクレイピングの方が簡単かつ確実かもしれない(?)。
ただし、3つの値がHTML上で連結して表示されているため、文字列の処理が要る
ウェブデザインが変更された時に、PHPコードの変更が必要。。
2.次に、WordPress管理画面でPHPコードを埋め込む方法を調べて試す。
以下のショートコードを使う?
WordPressの記事内でPHPを実行した結果を表示する方法 | tipLog
WordPressの投稿内で任意のPHPコードを実行できる「ショートコード」を自分で作成する方法と呼び出し方。引数の受け渡しも簡単! | WEMO
→1-2のPHPによるスクレイピングコードをfunction.phpに追記し、ショートコードを定義
→投稿記事内にショートコードを記載することで、1-2のスクレイピングの結果を表示できた!
ただし、投稿記事の中でも、日付フォーマット指定されている入力欄では、ショートコードが反映されなかった。
このやり方だと、IDの分だけショートコードを定義する必要がある
入力文字制限を解除する
https://plusers.net/wordpress_custom_post