it-swarm.com.de

Update-Benachrichtigung aktivieren, Updates deaktivieren

Es gibt viele Fragen zum Deaktivieren von Updates und/oder Entfernen von Update-Benachrichtigungen. Alle Lösungen, die das Update deaktivieren, deaktivieren jedoch auch die Update-Benachrichtigungen.

Ich möchte jedoch die Möglichkeit der Aktualisierung deaktivieren, während ich über verfügbare Aktualisierungen informiert werde.

Derzeit verwende ich define( 'DISALLOW_FILE_MODS', true );Codex

Das Problem dabei ist, dass nicht nur der Aktualisierungsprozess, sondern auch die Benachrichtigungen deaktiviert werden.

Edit: Okay, ich bin selbst ein bisschen durch das Kaninchenloch gegangen. Ich denke, ich sollte auch klarstellen, dass ich nicht (nur) über Core-Updates spreche, sondern auch über Plugins und Themes.

Wenn ich es richtig verstehe, liegt das daran, dass die Funktion unter /wp-admin/includes/update.php:250 vorzeitig zurückkehrt.

Ich sehe also zwei Möglichkeiten:

  • füge die update_pluginsoption hinzu, welche Art den Zweck besiegt, und ich bin mir nicht sicher, welche Nebenwirkungen auftreten
  • füge meinen eigenen Hook zu admin_init hinzu, um wp_plugin_update_rows zu replizieren. Ich habe es versucht, aber es sieht immer noch nicht gleich aus. Es scheint etwas mehr zu sein, und es scheint auch keine sehr saubere Art zu sein, dies zu tun.

BEARBEITEN: Es gibt ein Ticket für dieses Problem, falls Sie daran arbeiten möchten: https://core.trac.wordpress.org/ticket/25219

10
kraftner

Fügen Sie den folgenden Code in den functions.php Ihres untergeordneten Themas ein oder packen Sie ihn als benutzerdefiniertes Plugin, um es einfach zu aktivieren/deaktivieren:

add_action( 'wp_before_admin_bar_render', 'wpse161696_toolbar_menu' );
add_action( 'admin_menu', 'wpse161696_updates' );

function wpse161696_toolbar_menu() { // Remove update menu item from the toolbar
    global $wp_admin_bar;
    $wp_admin_bar -> remove_menu( 'updates' );
}

function wpse161696_updates() { // Remove all updating related functions
    remove_submenu_page( 'index.php', 'update-core.php' ); // Remove Update submenu
    // Redirect to Dashboard if update page is accessed
    global $pagenow;
    $page = array(
        'update-core.php',
        'update.php',
        'update.php?action=upgrade-plugin'
        );
    if ( in_array( $pagenow, $page, true ) ) {
        wp_redirect( admin_url( 'index.php' ), 301 );
        // wp_die( 'Updates are disabled.' ); // An error message can be displayed instead
        exit;
    }
}

Dies sollte Ihnen etwas geben, mit dem Sie arbeiten können. Die Aktualisierungslinks werden aus der Seitenleiste und der Symbolleiste im Dashboard entfernt, während die Aktualisierungsbenachrichtigungen aktiviert bleiben.

Das Update now wird jedoch weiterhin unter jedem Plugin angezeigt, mit dem der Benutzer Aktualisierungen durchführen kann:

 enter image description here 

Eine Lösung besteht darin, den Link über CSS auszublenden. Ich konnte diesen Teil nicht ganz zum Laufen bringen, aber da diese Frage sehr alt ist, wollte ich auch keine Zeit damit verschwenden. Ich hatte das Gefühl, diese Frage müsse etwas geklärt werden.