Ausstehende WordPress-Updates debuggen

Ab und zu kann es vorkommen, dass WordPress ausstehende Updates anzeigt, unter „Aktualisierungen“ jedoch keine Updates angezeigt werden. Der nachfolgende Code hilft dabei, die Ursache für dieses Problem zu finden. Dazu einfach den folgenden Code in ein Theme oder Plugin einfügen:

/** enable ?show_available_updates url parameter */
function debug_pending_updates() {

	// Basic permission handling
	if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) ) {
		return;
	}
	if ( ! isset( $_GET['show_available_updates'] ) ) {
		return;
	}

	$output = "";

	// Check for available plugin updates
	$plugin_updates = get_site_transient( 'update_plugins' );
	if ( $plugin_updates && ! empty( $plugin_updates->response ) ) {
		foreach ( $plugin_updates->response as $plugin => $details ) {
			$output .= "<p><strong>The plugin</strong> <u>$plugin</u> is reporting an available update.</p>";
		}
	}

	// Check for available theme updates
	wp_update_themes();
	$theme_updates = get_site_transient( 'update_themes' );
	if ( $theme_updates && ! empty( $theme_updates->response ) ) {
		foreach ( $theme_updates->response as $theme => $details ) {
			$output .= "<p><strong>The theme</strong> <u>$theme</u> is reporting an available update.</p>";
		}
	}

	if ( empty( $output ) ) {
		$output = "No pending updates found in database.";
	}

	wp_die( $output );
}

add_action( 'init', 'debug_pending_updates' );

Nachdem der Code eingefügt wurde, muss die Website mit dem URL-Parameter ?show_available_updates aufgerufen werden. Dieser Aufruf führt dann zu einer Liste, die alle ausstehenden Theme- und Plugin-Updates enthält.

Schreibe einen Kommentar