Cum să dezactivezi actualizarea automată pentru un singur plugin în WordPress

9 aug. 2011, 03:02:21
Vizualizări: 16.7K
Voturi: 12

Am un plugin pe care știu că nu vreau să-l actualizez niciodată. Sunt conștient că aceasta NU este cea mai bună practică, dar în acest caz trebuie să o fac. Există vreo modalitate de a opri WordPress să mă avertizeze să actualizez automat un anumit plugin (dar să primesc în continuare notificări normale pentru toate celelalte plugin-uri).

2
Comentarii

Mărește numărul versiunii din fișierul principal al plugin-ului.. de ex. 99.9 ...și de asemenea fă aceeași modificare în fișierul readme pentru măsură de precauție(deși nu cred că este obligatoriu)..

t31os t31os
9 aug. 2011 03:12:24

Funcționează în continuare ajustarea numerelor de versiune dacă plugin-ul își actualizează numerele de versiune la ceva de genul 1.10.1?

emc emc
25 sept. 2013 22:33:21
Toate răspunsurile la întrebare 8
4
12

introdu acest cod în functions.php al temei tale

// Dezactivează notificările de actualizare pentru pluginuri individuale - vezi exemplul meu pentru pluginul block-spam-by-math-reloaded pentru a înțelege cum să folosești această funcție

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' );
9 aug. 2011 03:37:41
Comentarii

Nu înțeleg de ce există un cod pentru butonul Google +1 în răspunsul tău... Probabil a rămas din greșeală...

brasofilo brasofilo
29 iun. 2012 22:38:18

A rămas din greșeală. Scuze.

Tara Tara
1 iul. 2012 00:05:48

Această soluție aruncă un avertisment atunci când activezi sau dezactivezi orice alt plugin. 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
11 ian. 2014 05:58:03

gurung, ce versiune de WP folosești pentru asta?

fedmich fedmich
17 feb. 2015 18:33:27
1
10

Răspunsul lui T31os a fost corect: Mărește numărul versiunii din fișierul principal al pluginului.. de exemplu 99.9 ... și de asemenea fă aceeași modificare în fișierul readme pentru a fi sigur (deși nu cred că este necesar).. – t31os

9 aug. 2011 18:42:43
Comentarii

2022 și încă funcționează! mulțumesc

Sid Sid
23 mar. 2022 13:53:08
1

Deși răspunsul lui Tara funcționează bine, necesită ca programatorul să introducă calea către fișierul principal al plugin-ului și este funcțional doar cât timp acea temă specifică este activată. O soluție alternativă ar putea arăta astfel:

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

versiunea pe o singură linie:

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

Plasați acest cod în partea de sus a fișierului principal .php al plugin-ului pentru care doriți să dezactivați actualizările. Dacă intenționați să utilizați acest cod de mai multe ori pe site, schimbați _1234 din numele filtrului și funcției cu un alt set de numere aleatoare pentru a evita nume de funcții duplicate.

Este probabil ca, dacă dezactivați actualizările pentru un anumit plugin, este din cauză că îl modificați din anumite motive... așadar, adăugarea a câteva linii suplimentare în acel plugin ar trebui să fie fezabilă.

25 sept. 2013 22:35:19
Comentarii

Aceasta este cel mai bun răspuns în opinia mea, mai ales dacă dezactivezi actualizările pentru că modifici tu însuți plugin-ul. Mulțumesc emc.

Nathan Nathan
11 mai 2018 18:55:46
0

Am primit avertismente PHP precum 'gurung' menționat mai sus atunci când instalam sau actualizam alte plugin-uri în timp ce foloseam acest cod. Am văzut avertismentele PHP în WP 4.3.1.

Am găsit alte postări pe stackexchange despre această problemă și am creat o funcție care parcurge array-ul tău de referințe de plugin-uri și verifică mai întâi dacă există deja o referință la acel plugin (pentru a evita avertismentul PHP pentru non-obiecte dacă nu există unul) și dacă există un obiect, îl va elimina exact ca în codul original.

Nu am făcut teste unitare, dar primeam avertismente PHP la fiecare actualizare/instalare de plugin-uri și acum nu le mai văd.

function filter_plugin_updates( $value ) {

  // Adaugă referințe la plugin-uri pentru care vrei să dezactivezi notificările de actualizare în array-ul $plugins
  $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' );
21 sept. 2015 19:02:59
0

Sau pur și simplu îl redenumești astfel încât să nu fie același plugin.
Trebuie să redenumești nu doar folderul, ci și în fișierul readme și în antetul pluginului.

9 aug. 2011 04:25:29
0

Am moștenit un site cu implementarea codului lui Tara făcută de NPC, care a generat erori conform comentariului lui Gurung. M-a înnebunit. Am ezitat să editez codul într-un plugin, până când am realizat că snippet-ul este personalizat oricum.

Pentru a elimina erorile, schimbați aceasta:

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

în aceasta:

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

Poate fi evident pentru unii, dar cheia este că este deja personalizat, așa că îl puteți edita și probabil nu va fi suprascris de actualizări, deoarece scopul întreg este să vă împiedice să actualizați pluginul.

17 dec. 2015 23:44:56
0

Puteți preveni actualizările pur și simplu prin redenumirea folderului pluginului (sau, în cazul unui plugin cu un singur fișier, prin redenumirea acelui fișier PHP). Aceasta este, de departe, cea mai simplă soluție. În plus, această abordare face ca faptul că ați modificat codul să fie transparent pentru viitorii dezvoltatori, inclusiv pentru "viitorul tău".

25 mar. 2019 00:44:18
0

O versiune mai mare în fișierul principal al pluginului este cea mai bună, dar doar atunci când adăugați un hack special. Aceasta apelează un număr nedefinit/null și va rămâne apoi în acea versiune. Exemplu:

Versiune:

Aceasta va asigura că în anul 2100 nu se va actualiza după 9.9.9 sau ceva similar. Este o abordare simplă pentru pluginuri abandonate care la un moment dat vor fi înlocuite.

18 iun. 2019 21:42:34