由于我必须维护很多Wordpress站点,我创建了一个小函数,它生成一个带有最新Core&插件更新信息。我的监控页面通过curl获取这个json文件,并将它们显示在列表中。
问题是,在后端登录后,json文件中的数据似乎只能实现。我尝试使用init操作让它在没有后端登录的情况下工作,但它没有。
有人有想法,如何解决?我希望每72小时获得一次实际状态。这是我在functions.php中的函数:
function wpCheckUpdateState() {
$upload_dir = wp_upload_dir();
$file = $upload_dir['basedir'] . '/version.json';
// check only every 72 hours (259200sec)
if( is_writeable($upload_dir['basedir']) && ( !is_readable($file) || filemtime($file) < time() - 259200) ) {
if( function_exists('file_put_contents') ) {
$data['rebuild'] = false;
if( get_site_transient('update_plugins') == false) {
wp_update_plugins();
$data['rebuild'] = true;
}
$plugins = get_site_transient( 'update_plugins' );
$data['wp-version'] = get_bloginfo('version');
$data['updated'] = date('d.m.y H:i', $plugins->last_checked);
$data['plugins']['update'] = count($plugins->response);
$data['plugins']['no_update'] = count($plugins->no_update);
$json_data = json_encode($data);
file_put_contents($file, $json_data);
}
}
}
add_action( 'init', 'wpCheckUpdateState' );