WordPress auf Updates zentral prüfen

WordPress aktualisiert kleine Versionssprünge selbst. Auch die Plugins bekommen seit WordPress 5 automatisch ihre Aktualisierungen. Sogar die Übersetzungen werden hin und wieder von alleine auf den neuesten Stand gebracht. Trotzdem hat Überwachung noch niemandem geschadet 😆.

Wenn ein Plugin abfragen soll, ob es Aktualisierungen gibt, geht das mit diesem Code. Das Ergebnis ließe sich beispielsweise einem Monitoring-Tool zur Verfügung stellen, das den Status vieler WordPress-Installationen anzeigt.

<?php

// Check Core, Themes and Plugin Updates
global $wpdb;
$result = [];

// Read options table from database
$rows = $wpdb->get_results( "SELECT * FROM `". $wpdb->prefix ."options` WHERE `option_name` LIKE '%update%'");

foreach($rows as $row) {
	if ($row->option_name == '_site_transient_update_core') {
		$data = unserialize($row->option_value);
		$newest_version = $data->updates[0]->current;
		$installed_version = $data->version_checked;
		if ($newest_version != $installed_version) {
			$result['wordpress_core_needsupdate'] = true;
		}
	}

	if ($row->option_name == '_site_transient_update_themes') {
		$data = unserialize($row->option_value);
		// Response array contains data about new versions if available
		if (count($data->response)) {
			// Collect names of outdated themes
			$themes_to_update = [];
			foreach ($data->response as $theme) {
				array_push($themes_to_update, $theme['theme']);
			}
			$result['wordpress_themes_needupdate'] = $themes_to_update;
		}
	}

	if ($row->option_name == '_site_transient_update_plugins') {
		$data = unserialize($row->option_value);
		if (count($data->response)) {
			// Collect names of outdated plugins
			$plugins_to_update = [];
			foreach ($data->response as $plugin) {
				array_push($plugins_to_update, $plugin->slug);
			}
			$result['wordpress_plugins_needupdate'] = $plugins_to_update;
		}
	}
}

?>

Leave a Comment