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.