Disattiva Aggiornamento automatico per singolo plug-in


10

Ho un plugin che so che non voglio mai aggiornare. Sono consapevole che questa NON è la migliore pratica, ma in questo caso deve essere fatta. Esiste un modo per impedire a WordPress di spingermi ad aggiornare automaticamente un determinato plug-in (ma comunque avvisare normalmente per tutti gli altri plug-in).


6
Aumenta il numero di versione all'interno del file principale del plugin .. es. 99.9... e anche fare lo stesso cambiamento nel file readme per buona misura (anche se non penso che sia effettivamente richiesto) ..
t31os

La regolazione dei numeri di versione funzionerà comunque se il plugin aggiorna i suoi numeri di versione a qualcosa del genere 1.10.1?
emc,

Risposte:


11

lo metti nelle funzioni.php del tuo tema

// Disable update notification for individual plugins - see my example of plugin block-spam-by-math-reloaded as to how to use this function

function filter_plugin_updates( $value ) {
    unset( $value->response['plugin-folder-name/plugin-file-name.php'] );    
    return $value;
}

add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

Non capisco perché nella tua risposta sia presente un codice pulsante Google +1 ... Probabilmente un
residuo

rimasto. Scusate.
Tara,

3
Questa soluzione genera un avviso mentre abilita o disabilita qualsiasi altro plug-in. Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/custom-functions.php on line 15
Gurung

gurung su quale versione di WP stai usando questo?
fedmich,

7

La risposta di T31os era corretta: aumentare il numero di versione all'interno del file principale del plugin .. es. 99.9 ... e anche fare la stessa modifica all'interno del file readme per buona misura (anche se non penso che sia effettivamente richiesto) .. - t31os


5

Mentre la risposta di Tara funziona bene, richiede al programmatore di inserire il percorso del file del plug-in principale ed è solo funzionale mentre quel particolare tema è abilitato. Una soluzione alternativa potrebbe apparire così:

add_filter('site_transient_update_plugins', 'remove_update_notification_1234');
function remove_update_notification_1234($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
    return $value;
}

versione a una riga:

add_filter('site_transient_update_plugins', function ($value) { unset($value->response[ plugin_basename(__FILE__) ]);return $value; });

Inserisci questo codice nella parte superiore del .phpfile principale del plug-in che desideri disabilitare. Se prevedi di utilizzarlo più di una volta nel tuo sito, modifica il nome _1234del filtro e della funzione in un diverso set di numeri casuali per evitare doppi nomi di funzioni.

È probabile che se stai disabilitando gli aggiornamenti per un determinato plug-in, è perché lo stai modificando per qualche motivo ... quindi l'aggiunta di alcune righe extra a quel plug-in dovrebbe essere praticabile.


1
Questa è la risposta migliore secondo me, specialmente se stai disabilitando gli aggiornamenti perché stai modificando il plugin da solo. Grazie emc.
Nathan,

3

Stavo ricevendo avvisi PHP come 'gurung' di cui sopra quando ho installato o aggiornato altri plugin mentre stavo usando questo codice. Ho visto gli avvisi PHP in WP 4.3.1.

Ho trovato alcuni altri post su stackexchange sul problema e ho trovato una funzione che scorre attraverso l'array di riferimenti del plug-in e controlla prima se c'è già un riferimento a quel plug-in (per evitare l'avvertimento PHP su non oggetti se non ce n'è uno) e se c'è un oggetto lo disinserirà proprio come il codice originale.

Non ho eseguito test unitari ma ho ricevuto avvisi PHP su ogni aggiornamento / installazione di plugin e ora non li vedo.

function filter_plugin_updates( $value ) {

  // Add references to plugins you want to disable update notices for in the $plugins array
  $plugins = array(
    'k-elements/setup.php'
  );

  foreach( $plugins as $plugin ) {
    if ( isset( $value->response[$plugin] ) ) {
      unset( $value->response[$plugin] );
    }
  }

  return $value;

}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

1

O semplicemente rinominalo in modo che non sia lo stesso plugin.
È necessario rinominare non solo la cartella ma anche l'intestazione del file Leggimi e del plug-in.


1

Ho ereditato un sito con l'implementazione di npc del codice sniper di tara, che ha generato errori per il commento di Gurung. Mi ha fatto impazzire. Ero titubante a modificare il codice in un plugin, fino a quando non mi sono reso conto che lo snipper è comunque personalizzato.

Per eliminare gli errori, modificare questo:

unset($value->response[ plugin_basename(__FILE__) ]);

a questa:

if($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
}

Per alcuni potrebbe essere ovvio, ma la chiave è che è già personalizzato, quindi puoi modificarlo e probabilmente non verrà sovrascritto dagli aggiornamenti perché l'intero punto è impedirti di aggiornare il plugin.


0

Puoi impedire gli aggiornamenti semplicemente rinominando la cartella del plugin (o, nel caso di un plugin a file singolo, rinominando quel file PHP). Questa è di gran lunga la soluzione più semplice. Inoltre, questo approccio rende trasparente il fatto che hai modificato il codice per gli sviluppatori futuri, incluso "future you".


0

Una versione superiore nel file del plug-in principale è la migliore, ma solo quando si aggiunge un hack speciale. Chiama un numero nullo / non definito e rimarrà quindi in quella versione. Esempio:

Versione:

Ciò garantirà che nel 2100 non verrà aggiornato dopo il 9.9.9 o qualcosa del genere. È un approccio semplice per i plugin abbandonati che a volte verrà sostituito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.