A kisebb forgalmú WordPress-oldalak egyik gyakori problémája, hogy az ütemezett WordPress-bejegyzések nem jelennek meg a megfelelő időpontban. Ennek oka elsődlegesen az, hogy a WordPress egy saját cront (feladatidőzítőt) tart fenn az ütemezett feladatok végrehajtásához, és hacsak nem gondoskodunk ennek rendszeres időközönként történő futtatásáról, könnyen előfordulhat, hogy pl. egy 10:00 időpontra beütemezett feladat azért nem tud kikerülni az internetre, mert ekkor éppen senki sem kereste fel az oldalunkat, így ezt a feladatot sem tudta az adott időpontban triggerelni a WordPress. Ilyenkor sikertelen időzítés állapotba kerül a bejegyzés, ami azért is bosszantó, mert azon túl, hogy semmi sem történik majd vele automatikusan, és erről még csak értesítést sem kapunk, nekünk kézzel kell újra közzétennünk a bejegyzést a szerkesztőből.

Szerencsére, mint mindenre, erre is létezik megoldás, méghozzá nem is egy. Lássuk a részleteket!

Feladatok ütemezése bővítménnyel

Ahogy az a WordPress esetén szinte mindenre igaz, itt is érvényes, hogy erre a problémára is létezik egy bővítmény! Nem is egy, hanem rögtön kettő. Az egyik a Scheduled Post Trigger névre hallgat, és a telepítésén és aktiválásán kívül semmi más teendőnk nincs. Állítólag sokaknak működik, mi kipróbáltuk az egyik oldalunkon, és egy, a bővítmény telepítése előtt ütemezett WordPress-bejegyzés esetén semmi változást nem tapasztaltunk. Azaz továbbra is sikertelen időzítéses állapotban maradt. Ez lenne a legegyszerűbb módja a probléma megoldásának, de úgy tűnik, nem 100%-ban működőképes. Mindenesetre érdemes vele tenni egy próbát, és ha beválik, akkor le is zárhatjuk a problémamegoldást. Ha nem, akkor érdemes telepíteni a következő bővítményt.

Ha esetleg mégsem működne, akkor viszont van egy tuti tippünk, amelynek csak egy picit körülményesebb a telepítése. Ez a WP Missed Schedule névre hallgat, és a készítőjének kérésére nem érhető el a WP kereshető bővítménykatalógusában. A GitHub-oldalról viszont könnyedén le tudjuk tölteni ZIP formátumban (lásd az alábbi képen), és ezt már a Bővítmények oldalán csak fel kell töltenünk a saját oldalunkra. Az aktiválását követően ezzel sincs semmi dolgunk, és ez a bővítmény nálunk minden oldal esetében probléma nélkül működött, még akkor is, ha a telepítését megelőzően időzített bejegyzésről volt szó.

Egyedül arra kell figyelni, ha esetleg alapvetően megváltozik a WordPress működése (például 5.x-esről 6-os verzióra kell frissíteni), mert akkor könnyedén működésképtelenné válhat ez a bővítmény, és mivel nem szerepel a bővítménytárban, így a frissítéséről is nekünk kell majd gondoskodnunk. Mivel a WP egy alapvető, központi funkciójáról van szó, ezért nem valószínű, hogy ez a közeljövőben problémát okozna, de nem árt észben tartani, ha egyszer csak megint meghiúsul egy időzített bejegyzés közzététele.

A cron futtatása rendszeres időközönként

Természetesen létezik másik megoldás is arra, hogy az alacsonyabb látogatói forgalmat kompenzáljuk. Mi magunk is gondoskodhatunk arról, hogy minden percben legyen forgalom az oldalunkon. Amennyiben a webhelyszolgáltatást béreljük egy szolgáltatótól, úgy az ő felületünkön kell utánanéznünk, hogy az alábbiakban leírtakra lehetőségünk nyílik-e. Ha a saját szerverünket használjuk, akkor pedig lehetőségünk nyílik a rendszer-crontab használatával gondoskodni a megfelelő oldal rendszeres lekéréséről.

A WordPress beépített cronjának letiltása

Első lépésként le kell tiltanunk a WordPress saját, beépített cronját, mivel innentől kezdve nem a külső (látogatói) oldallekérések alapján fogjuk futtatni a tervezett feladatokat. Ehhez szerkeszteni kell a WP gyökérkönyvtárában található wp-config.php fájlt, és el kell helyezni benne az alábbi sort:

 define('DISABLE_WP_CRON', true);

ISPConfig használata esetén

Amennyiben a tökéletes Ubuntu szerverünket használjuk, és telepítettük rá az ISPConfig nevű webes irányítópultot, akkor a Sites -> Cron Jobs alatt tudunk új cron-feladatot létrehozni. Itt adhatjuk meg, hogy melyik webhelyről van szó, valamint a feladat időzítését. Ha minden percben szeretnénk futtatni a fealadatokat (bejegyzések közzétételéhez erre lesz szükségünk, más karbantartási feladatok végrehajtása esetén elegendő lehet 5 percenként is futtatni a cront), akkor az összes időzítős időegységhez csak egy csillagot kell írnunk.

 

A Command to run mezőben pedig azt az URL-címet kell megadnunk, amellyel a WP cronját tudjuk meghívni: https://sajatdomain.hu/wp-cron.php?doing_wp_cron

És már készen is vagyunk!

Rendszerszintű cron-faladat használata esetén

Ha nincs webes vezérlőpultunk, de van SSH-hozzáfésérünk az Ubuntu- vagy Debian-rendszerünkhöz, akkor a crontab -e parancs kiadásával tudjuk szerkeszteni a rendszer aktuálisan bejelentkezett felhasználójának crontabját. Ide kell felvennünk új sorként a következő kifejezést:

* * * * * wget http://sajatdomain.hu/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Vagy csak karbantartási feladatok esetén, ha elegendő az 5 perces időköz:

*/5 * * * * wget http://sajatdomain.hu/wp-cron.php?doing_wp_cron > /dev/null 2>&1

A mentést követően máris élesedik a feladat, és a rendszer minden percben (vagy ötödik percben) lefuttatja a parancsot.

Ha esetleg a wget nem lenne telepítve a rendszerre, akkor a sudo apt-get install wget paranccsal tudjuk telepíteni.

Chilly
Chilly

Chilly 1997 óta foglalkozik webhelyek üzemeltetésével és programozással, valamint különböző kütyük kipróbálásával, és azóta folyamatosan nyomon követi a technikai újításokat. Elsődlegesen Linux-rendszerekkel dolgozik, de az évek során rengeteg tapasztalatra tett szert a Windows-gépek üzemeltetése terén is, hobbiszinten pedig az utóbbi időben egyre több időt tölt a Raspberry Pi módosítgatásával, illetve otthoni automatizált és biztonságtechnikai rendszerek kiépítésével.
Mesterfokon beszél angolul, és műszaki szakfordítói vizsgával rendelkezik. Korábban sokáig újságíróként dolgozott nyomtatott és online magazinoknál.

Visit Us On LinkedinCheck Our Feed