我有一个插件,需要检查更新。下面的函数-当有人进入插件管理页面时,会触发get\\u version\\u to\\u update。理论上,请求完成后,数据应通过瞬态缓存24小时。这适用于大多数站点,但对于某些特定站点,我得到的数据是wp\\u remote\\u请求反复触发的,这(我认为)意味着transient无法保存。
为什么会发生这种情况?有没有更可靠的方法来检查这一点?
public function get_version_to_update(){
// I get the transient
$data = get_transient("my_plugin_remote_version");
// I check if it exists
if($data === false){
// here I get data from server using wp_remote_request, server return just version number, e.g. "2.0"
$data = wp_remote_request(...);
// I cache it for 24h
set_transient("my_plugin_remote_version", $data, 60 * 60 * 24);
}
// I check if returned data from server is correct
if ( !$data || is_wp_error( $data ) || 200 != $data[\'response\'][\'code\']) {
return false;
} else {
if( version_compare(MY_PLUGIN_VERSION, $new_version, \'<\') ) {
// return new version, if it\'s newer then current
return $data[\'body\'];
} else {
return false;
}
}
}
这个问题快把我累死了,谢谢你的帮助!