A háttérben lefutó automatikus frissítéseket a WordPress 3.7 fejlesztői vezették be biztonsági és kényelmi szempontoktól vezérelve. Alapértelmezett esetben csak a karbantartási és biztonsági frissítések, valamint a nyelvi fájlok frissítése van engedélyezve. De nem csak a rendszer, hanem a nyelvi fájlok, bővítmények is frissülhetnek anélkül, hogy foglalkoznánk velük.
Ez olyan szempontból nagyon rossz, hogy adott esetben megboríthatja az egész oldal működését. Vegyük csak ezt a példát: kész káoszt okozna egy éles weboldalon, ha a leírt esetben nem kontrollálnánk a frissítést.
Szerencsére gondoltak erre a fejlesztők, és adnak lehetőséget a funkció kikapcsolására. Sőt! Választhatunk is, hogy mit akarunk automatikusan frissíteni, és mit nem.
Az észrevétlenül lefutó automatikus frissítéseknek 4 fajtája van:
- WordPress frissítés
- Bővítmény frissítés
- Kinézet frissítés
- Nyelvi fájlok frissítése
1. WordPress frissítés
Három altípusa van:
- Fejlesztői frissítések
- Kisebb frissítések (ilyenek a karbantartó és biztonsági frissítések, pl.: 3.7 verzióról 3.7.1-re való frissítés)
- WordPress főverzió frissítések (pl.: 3.6(.x) verzióról 3.7(.x) verzióra)
Alapértelmezés szerint csak a kisebb frissítések, illetve a nyelvi fájlok frissítése van engedélyezve.
WP_AUTO_UPDATE_CORE
A főverzió-frissítés és a fejlesztői verziók automatikus frissítéséhez meg kell ismerkednünk a WP_AUTO_UPDATE_CORE funkcióval. 3 módon lehet beállítani, mindhárom beállítás esetén más tulajdonsággal fog rendelkezni ez a funkció.
- Ha az értéke true – a fejlesztői, kisebb és főverziók automatikus frissítése engedélyezve lesz.
- Ha az értéke false – a fejlesztői, kisebb és főverziók automatikus frissítése nem lesz engedélyezve.
- Ha az értéke minor – akkor a kisebb automatikus frissítések engedélyezve lesznek, míg a főverziók, és fejlesztői verziók frissítései nem fognak automatikusan lefutni.
Ha ki szeretnéd válogatni, hogy milyen automatikus frissítéseket engedélyezel, és mit nem, akkor 3 ún. filtert is segítségül hívhatsz:
- allow_dev_auto_core_updates
- allow_minor_auto_core_updates
- allow_major_auto_core_updates
Ezeket a __return_true vagy __return_false értékekkel tudod engedélyezni vagy tiltani.
Példák:
A fejlesztői verziók automatikus frissítéseinek engedélyezése:
#1-es kód (a kinézet functions.php fájljába kell tenni)
A kisebb frissítések automatikus lefutásának tiltása:
#2-es kód (a kinézet functions.php fájljába kell tenni)
A nagyobb frissítések automatikus lefutásának engedélyezése:
#3-as kód (a kinézet functions.php fájljába kell tenni) vagy #3B kód wp-config.php fájlban való elhelyezésével
2-3. Bővítmény és kinézet frissítés
Alapértelmezésben ezek automatikus lefuttatása ki van kapcsolva. Az engedélyezésükhoz a auto_update_$type filtert kell használni. A $type részt lehet vagy “plugin” vagy “theme” szóval helyettesíteni.
Példák:
A bővítmények automatikus frissítésének engedélyezése:
#4-es kód (a kinézet functions.php fájljába kell tenni)
A kinézetek automatikus frissítésének engedélyezése:
#5-ös kód (a kinézet functions.php fájljába kell tenni)
4. Fordítások frissítése
Hasonlóan a kisebb frissítésekhez, ez a funkció is alapértelmezett esetben engedélyezve van.
A nyelvi fájlok automatikus frissítésnek tiltása:
#6-os kód (a kinézet functions.php fájljába kell tenni)
Az automatikus frissítések funkció kikapcsolása
A WordPress fejlesztőinek tudatos és átgondolt döntése volt, hogy az új verzióba betették az automatikus frissítést a karbantartó, biztonsági frissítésekkel, illetve a nyelvi fájlokat illetően. Szerintük ez a funkció garantálja, hogy a weboldal naprakész és biztonságos legyen, ezért nem javasolják ennek a funkciónak a kikapcsolását. Ezzel szemben én azt mondom, hogy kapcsoljuk ki ezt a funkciót, és amikor megjelenik új verzió, akkor az eddig megszokott módon végezzük el a frissítést. Így elkerülhetjük azt, hogy – extrém esetben – tudtunk nélkül összeomlik a weboldalunk. Illetve így garantált, hogy a frissítés előtt tudunk biztonsági mentést készíteni a weboldalunk aktuális állapotáról.
Fő frissítések automatikus lefutásának kikapcsolása
A auto_update_$type filterrel tudjuk állítani. Ha a $type szót kicseréljük erre: “core”.
Az alap WordPress frissítések (ld. 1-es pont felül) kikapcsolása:
#7-es kód (a kinézet functions.php fájljába kell tenni)
Minden automatikus frissítés kikapcsolása
Ez minden fajtáját kikapcsolja az automatikus frissítéseknek. Beleértve a WordPress, bővítmények, kinézetek, nyelvi fájlok automatikus frissítését is.
Két módon (bármelyiket választod, a végeredmény ugyanaz lesz: nem fog lefutni egy automatikus frissítés sem) az összes automatikus frissítést deaktiválni:
wp-config.php fájlban el kell helyezni ezt a sort:
#8-as kód (én ezt használom)
A kinézet functions.php fájljába kell elhelyezni ezt a kódot, ahogy minden – jelen cikkben elérhető – “add_filter” kezdetű kódot:
#9-es kód
Mire figyelj nagyon?
Egy funkcióhoz ne adj több, egymásnak ellent mondó utasítást.
Nem fog lefutni az automatikus frissítés, ha:
- WP_AUTO_UPDATE_CORE értéke hamis (false)
- DISALLOW_FILE_MODS értéke igaz (true)
- AUTOMATIC_UPDATER_DISABLED értéke igaz
- Ha nem fut a tárhelyen a cron funkció.
További infók:
- A cikk nagy része a témába vágó hivatalos dokumentáció fordítása.
- További tippek az automatikus frissítések szabályozására itt találhatóak (angol nyelven).
Nagyon jó a cikk leírása, részletes alapos de javasolnék egyszeribb megoldást mint a forráskódot hackelgetni
javaslom a Easy Updates Manager bővítményt inkább erre a célra.
Persze ez csak egy javaslat. Nekem bevált mivel vannak olyan bővítmények amik frissítése kritikus ezzel pedig kezelni tiltani tudom mi az aminek engedélyezett a frissítése és mi az aminek TILOS.
Hasznos egyedileg testre szabott sablonok és bővítmények esetében egyaránt.
Köszönöm a kiegészítést! A bővítményt hallomásból ismerem, már meg szerettem volna nézni, csak nem jutottam még odáig.
Ui.: A cikk írásakor (~5 éve) szerintem még nem is létezett az Easy Updates Manager bővítmény. 🙂