« 2020年07月 | メイン | 2020年10月 »

2020年09月28日

ワードプレスで外部からデータ取得

file_get_contentsでもいいんだが、なんかお作法あるようなので、正しいかわからないけどメモ

$result = wp_remote_get($url, $options);

https://wpdocs.osdn.jp/関数リファレンス/wp_remote_get

GETメソッドを使用してHTTPリクエストからの生の応答を取得します。

結果は、HTTPヘッダとコンテンツが含まれています。
※失敗時はWP_Errorが帰ってくる

HTTP POSTメソッドを使うには wp_remote_post() / enを参照ください。

デフォルトのパラメーター

$args = array(
'timeout' => 5,
'redirection' => 5,
'httpversion' => '1.0',
'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ),
'blocking' => true,
'headers' => array(),
'cookies' => array(),
'body' => null,
'compress' => false,
'decompress' => true,
'sslverify' => true,
'stream' => false,
'filename' => null
);

投稿者 muuming : 09:43

ワードプレスのキャッシュ

https://www.slideshare.net/katanyan/wordpress-58525699
によると

◆Wordpress Object cashe
◆Transientes API

2つある?違いは?

1、WordPress Object Cache URL:https://wpdocs.osdn.jp/クラスリファレンス/WP_Object_Cache
デフォルトでは、オブジェクトキャッシュは永続的なものではありません。これはつまり、データはメモリ上にのみ存在し、セッションの間を通してしか存在しない

処理内でのキャッシュって事かな。

単にデータを変数内にとっておけばいい気がするけど、たぶんワードプレスのお作法で書いたときにデータを引き出す側はキャッシュの有無とか気にせず書けるようになってるのかなぁ?こっちはとりあえず置いておこう。


2、Transientes API URL:https://wpdocs.osdn.jp/Transients_API

この API はキャッシュされるデータを一時的にデータベースへ保存するためのシンプルで標準化された方法を提供します。この方法ではデータに名前と有効期限を設定し、期限が来るとデータが削除されます。

ということでこれが私が思い浮かべるキャッシュ機構

---------------------
Transient を保存する
---------------------
set_transient( $transient, $value, $expiration );

$transient → (文字列) キャッシュされるデータにつけるユニークな識別子(長さ 45 文字以下)
$value → データ 勝手にシリアライズしてくれるのでそのままぶちこめ
$expiration → (整数) データを更新するまでの最大の秒数

---------------------
Transient を取得する
---------------------
get_transient( $transient );

---------------------
保存された Transient を削除する
---------------------
delete_transient( $transient );

--------------------------
データベースを操作して一時データ全て削除
--------------------------
DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%')

投稿者 muuming : 05:56