Gibt es eine Möglichkeit, Core- und Plugin-Updates zu deaktivieren? Ich ändere ein Plugin und ein bisschen WordPress Core (ich weiß, dass es eine Sünde ist, dies zu tun), kann es aber nicht ändern.
Gibt es eine Möglichkeit, Core- und Plugin-Updates zu deaktivieren? Ich ändere ein Plugin und ein bisschen WordPress Core (ich weiß, dass es eine Sünde ist, dies zu tun), kann es aber nicht ändern.
Antworten:
Ja, das kannst du machen ...
define( 'DISALLOW_FILE_MODS', true );
Fügen Sie dieses Snippet in Ihre wp-config.php
Datei ein und Sie können Core- und Plugin-Updates deaktivieren.
wp-config.php
sind eine Quelle für endlosen Spaß. ;)
So einfach sollte es sein:
<?php
defined( 'ABSPATH' ) or exit;
/* Plugin Name: (#120589) Disable Plugin Updates */
remove_action( 'load-update-core.php', 'wp_update_plugins' );
Single Core- und Theme-Updates können mit diesem Skript deaktiviert werden. Mein Mark Jaquith:
Für Plugins aus einigen Themendateien
// Plugins
add_filter( 'http_request_args', 'cws_hidden_plugin_12345', 5, 2 );
function cws_hidden_plugin_12345( $r, $url )
{
if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
return $r;
$plugins = unserialize( $r['body']['plugins'] );
unset(
$plugins->plugins[ plugin_basename( __FILE__ ) ],
$plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ]
);
$r['body']['plugins'] = serialize( $plugins );
return $r;
}
Für Themen aus einer Themen - functions.php
Datei
// Themes
add_filter( 'http_request_args', 'cws_hidden_theme_12345', 5, 2 );
function cws_hidden_theme_12345( $r, $url )
{
if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
return $r;
$themes = unserialize( $r['body']['themes'] );
unset(
$themes[ get_option( 'template' ) ],
$themes[ get_option( 'stylesheet' ) ]
);
$r['body']['themes'] = serialize( $themes );
return $r;
}
Aus jedem benutzerdefinierten Plugin heraus, wie in dieser Antwort hier auf dem Stapel beschrieben :
<?php
defined( 'ABSPATH' ) or exit;
/* Plugin Name: (#120589) Disable Aksimet Updates */
add_filter( 'site_transient_update_plugins', 'wpse120589DisableAkismetUpdates' );
function filter_plugin_updates( $value )
{
unset( $value->response['akismet/akismet.php'] );
return $value;
}
Eigentlich sollte das so einfach sein:
<?php
defined( 'ABSPATH' ) or exit;
/* Plugin Name: (#120589) Disable Core Updates */
add_filter( 'pre_site_transient_update_core', '__return_null' );
Für ältere Versionen hat John Billion ein vollständiges Plugin geschrieben , das auf alle abzielt .
Andi Nacin hat gerade einen Beitrag auf WordPress / Make veröffentlicht , der ausführlich auf dieses Thema eingeht :
Die Versionskontrolle ist ein Abschaltschalter:
Wenn WordPress ein Versionskontrollsystem erkennt, erkennt es, dass Sie wissen, was Sie tun, und vermeidet automatische Updates jeglicher Art. Es sucht nach Subversion, Git, Mercurial und Bazaar und es sucht überall.
Es funktioniert durch die Suche zwei Verzeichnisse (ABSPATH und was auch immer Sie aktualisieren, wie
WP_PLUGINS_DIR
oderWP_LANG_DIR
) für VCS Verzeichnisse (.svn
,.git
,.hg
,.bz
). Und es sieht auch ein Level höher aus - und schaut weiter, bis es die Wurzel des Laufwerks erreicht. Wenn Sie also eine einzelne Subversion-Prüfung bei/
oder/var/www/
oder/var/www/mysite.com/
ausführen, wird die WordPress-Installation bei/var/www/mysite.com/public_html/wordpress/
daran gehindert, Updates zu erhalten. Es ist klar, dass es auf der Website der Vorsicht irrt.
Gleiches gilt für das Deaktivieren des Datei- und Themen-Editors:
Die
DISALLOW_FILE_MODS
Konstante blockiert jede Art von Dateisystemänderungen, nicht nur durch Hintergrundaktualisierungen, sondern auch durch alle Benutzer. Also, weg sind die Datei-Editoren; die Fähigkeit, Kern, Themen oder Plugins zu aktualisieren; und die Möglichkeit, neue Themes oder Plugins zu installieren.
Einzelschalter wp-config.php
:
define( 'AUTOMATIC_UPDATER_DISABLED', (bool) true/false );
und
# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );
# Enables all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );
# Enables core updates for minor releases (default):
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
Weitere Details zum verlinkten Beitrag.
Hinweis: Der gesamte oben genannte Code wird während eines 5-minütigen Google-Suchlaufs gelöscht und daher nicht getestet, sondern nur visuell unterschieden / anhand des GitHub WordPress-Quellcodes und der GitHub-Suchergebnisse getestet. Sie müssen den Inhalt selbst überprüfen. Nehmen Sie diese Forschung auch für die Zukunft in Ihre Frage auf.
Einfach, ändern Sie den Kern nicht ...... Das Ändern des Kerns ist im Grunde genommen eine Gabelung von WordPress. Wenn Sie nicht Teil eines Entwicklungsteams sind, das eine Gabel für eine lange Zeit warten kann, bringen Sie Ihren Kunden in eine Sackgasse, in der dies der einzige ist Der Upgrade-Pfad besteht darin, die Site neu zu entwickeln. Er mag damit einverstanden sein, aber es ist etwas, das im Voraus vereinbart werden muss.
In jedem Fall reicht es nicht aus, das automatische Update zu deaktivieren, und Sie müssen auch alle Upgrade-Benachrichtigungen aus dem Dashboard entfernen oder besser sicherstellen, dass der Cient keinen FTP-Zugriff auf den Server hat.
Dieselbe Logik gilt für nicht triviale Plugins aus einer seriösen Quelle (z. B. Jetpack), mit der Ausnahme, dass Sie in diesem Fall die Gabel möglicherweise langfristig warten können.
Um Plugin-Updates zu deaktivieren und niemanden davon abzuhalten, es manuell zu aktualisieren, können Sie einfach den Namen des Plugins und sein Verzeichnis ändern. Natürlich sollten Sie einen Plugin-Namen und einen Verzeichnisnamen verwenden, die nicht von einem anderen Plugin verwendet werden, "${original plugin name} tailored for $client DON"T UPGRADE"
beispielsweise als neuer Plugin-Name und ${original plugin name}-for-$client
als neues Verzeichnis.
wp-config.php
haben die Informationen in einer anderen Antwort.