Észrevetted néha, hogy a WordPress telepítésednek néhány másodperccel tovább tart a betöltés? Vagy esetleg, hogy az ütemezett bejegyzéseid nem jelennek meg időben? Ez talán a WordPress cron funkciójának köszönhető.
Mi az a cron, vagy ütemezett feladatok?
A cron job egy időzített feladat, amelyet a UNIX-alapú operációs rendszerekben használnak az automatizált feladatok elvégzésére. A cron job-okat a “crontab” nevű fájlban definiálják, amelyben a felhasználók meghatározhatják, hogy milyen parancsokat kell futtatni és milyen időközönként.
Laikus nyelven szólva ez egy olyan program, amelyet a cPanel tárhely vezérlőpanelen keresztül érhet el, hogy egy másik program egy adott időpontban ugyanazt a dolgot elvégezze.
Mi az a WordPress Cron?
A WordPress saját Cron funkcióval rendelkezik, amely lehetővé teszi, hogy a WordPress segítségével ütemezd a posztokat vagy automatizálj eseményeket. Ez az alapfunkciók része, és akkor indul el, amikor a látogató a webhelyére böngészik, és navigál az oldalakon.
Tehát ha a WordPressnek van saját cronja, hol van a probléma? Nos, számos probléma merülhet fel azzal kapcsolatban, hogy miért nem fejeződik be a folyamat.
Ezek a következők lehetnek:
- Az Ön webhelye nem kap látogatókat, amikor szükséges
- DNS hibás konfiguráció
- Túlterhelt szerver
- A cache pluginek megakadályozzák a wp-cron.php betöltődését
- és a lista folytatódik tovább…
Ez azt jelenti, hogy ha a WordPress cron nem a megfelelő időben indul el, a poszt nem kerül ütemezésre. Továbbá mivel ez egy további program hozzáadása, amely akkor fut, amikor a webhelyed meglátogatják, ez növelheti a betöltési időt, mivel a WordPressnek át kell mennie egy automatizálási feladaton, mielőtt eljuthatna az oldal megjelenítéséhez.
Hogyan lehet a WordPress Cron (wp-cron.php) helyett egy tényleges Cron feladattal helyettesíteni?
Miután bejelentkezett a webtárhely cPanel felületére, navigáljon a cPanel alján található “Speciális” részhez, és kattintson a Cron Feladatok (Cron Jobs) menüpontra.
A Cron-feladatok panelen belül új feladatot adhat hozzá, vagy megtekintheti/módosíthatja a meglévő feladatokat.
Új feladat hozzáadása
A feladat indításához a következő beállítások állnak rendelkezésre. A cron job-ok időzítését egy speciális formátumban adják meg, amely hat mezőből áll:
- A perc (0-59)
- Az óra (0-23)
- A hónap napja (1-31)
- A hónap (1-12)
- A hét napja (0-7, ahol 0 és 7 mindkettő vasárnapot jelent)
- A futtatni kívánt parancs vagy script
Megjegyzés: A Cron Jobs-ban a “*” azt jelenti, hogy “minden” (pl. a napnál megadott ‘*’ azt jelenti, hogy minden nap)
Új feladat hozzáadásakor az első legördülő listából kiválaszthatja az előre meghatározott időbeosztást, de nekünk valami másra van szükségünk.
A folyamatnak 15 percenként kell elindulnia, amihez a második legördülő listából ki kell választanunk a “Once per 5 Minutes (*/5)” opciót, majd a többi mezőben csak a * (Every) opciót kell kiválasztanunk.
A WGET használatával
A “wget” parancs használata, amely egy ingyenes szoftvercsomag fájlok lekérdezésére a HTTP, HTTPS és FTP, a legelterjedtebb internetes protokollok segítségével. Ez egy nem interaktív parancssori eszköz, így könnyen hívható szkriptekből, cron feladatokból, X-Windows támogatás nélküli terminálokból stb.
A kód, amelyet végre kell hajtanunk, a következő:
wget -q -O - http://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
A example.com címet a WordPress telepítésednek megfelelő helyre kell módosítanod.
A WP-CLI használatával (ajánlott)
Mivel a cPanel szerverünkre telepítettük a WP-CLI-t is, ezt is használhatjuk az ütemezett feladatok indítására. A WP-CLI ismét egy parancssoros program, de tisztán arra szolgál, hogy a WordPress weboldalunkkal interakcióba léphessünk anélkül, hogy be kellene jelentkeznünk a műszerfalra.
Mi is a WP-CLI? A WP-CLI egy parancssori eszköz a WordPress weboldalak kezelésére. A “WP” a “WordPress” rövidítése, míg a “CLI” a “Command Line Interface” (parancssori felület) rövidítése. A WP-CLI lehetővé teszi a felhasználók számára, hogy telepítsenek, frissítsenek és kezeljenek WordPress weboldalakat és bővítményeket anélkül, hogy a webes felületen keresztül kellene elvégezni ezeket a műveleteket.
A végrehajtandó kód a következő:
/usr/local/bin/wp cron event run --due-now --path=/home/FELHASZNALO/MAPPA >/dev/null 2>&1
Részletesen áttekintve:
- Az
/usr/local/bin/wp
azt mondja a rendszerneknek, hogy a WP-CLI bináris programot indítsa el. Ennek helyességét a terminálból a “whereis wp” paranccsal tudod megerősíteni. - A
cron event run --due-now
parancsot ad a WP-CLI-nek, hogy hajtsa végre az éppen esedékes feladatokat. --path=/home/FELHASZNALO/MAPPA
Mivel a WP-CLI abban a könyvtárban fog futni, ahonnan futtatjuk, pontosan meg kell adnunk, hogy hova van telepítve a WordPress. Ezt a telepítésedhez kell majd testre szabnod. Ezt megerősítheted, ha a WordPress könyvtáradba navigálsz, majd a terminálodból a “PWD” (Print working directory) parancsot használod.>/dev/null 2>&1
ez az utolsó rész utasítja a teljes parancsot, hogy minden standard vagy hibakimenetet küldjön a /dev/null könyvtárba, hogy a naplók ne legyenek tele hibás adatokkal.
wp-cron.php letiltása
Miután a fenti ütemezett feladat beállításra került, még le kell tiltani a WordPress beépített cron funkcióját. Ehhez csak a wp-config.php fájlt kell szerkeszteni, és egy új sorban elhelyezni benne az alábbi opciót:
define('DISABLE_WP_CRON', true);