A wp-cron és az időzített feladatok a WordPressben
A WordPress sok feladatot időzítve végez el: közzéteszi az ütemezett bejegyzéseket, frissítéseket keres, hírleveleket küld, webáruházban rendeléseket és készletet kezel. Ezeket a wp-cron futtatja. A wp-cron azonban nem valódi időzítő: csak akkor fut le, amikor valaki megnyitja a weboldalt.
Miért lehet ez gond?
- Forgalmas oldalon a WordPress látogatások közben rendszeresen ellenőrzi az esedékes feladatokat, ami felesleges terhelést okozhat.
- Kis forgalmú oldalon a feladatok késhetnek: ha éjjel senki nem nyitja meg az oldalt, az éjfélre ütemezett bejegyzés csak reggel jelenik meg, és a hírlevél vagy a webáruház feladatai is csúszhatnak.
A megoldás: a látogatásokhoz kötött wp-cront kikapcsolja, és helyette a tárhelyen egy valódi időzített feladat futtatja rendszeresen.
1. A wp-cron kikapcsolása
- Lépjen be a DirectAdminba (segítség a belépéshez), és nyissa meg a Fájlkezelőt.
- Lépjen be a domains/<domainneve.hu>/public_html mappába, jelölje ki a wp-config.php fájlt, és válassza a Szerkesztés műveletet.
- Keresse meg a /* That's all, stop editing! */ kezdetű sort (magyar telepítésnél ennek magyar megfelelője állhat itt; ha nem találja, a require_once ABSPATH . 'wp-settings.php'; sort), és elé írja be új sorba:
define('DISABLE_WP_CRON', true); - Mentse a fájlt.
2. Valódi időzített feladat létrehozása
- A DirectAdminban nyissa meg a Haladó tulajdonságok → Időzített feladatok menüpontot, és kattintson az Időzített feladat létrehozása gombra.
- Az időzítés 15 percenkénti futáshoz: Perc: */15, a többi mező (Óra, A hónap napja, Hónap, A hét napja): *.
- A Parancs mezőbe írja be (a felhasználónevet és a domaint cserélje a sajátjára):
/usr/local/bin/php -q /home/<felhasználó>/domains/<domainneve.hu>/public_html/wp-cron.php >/dev/null 2>&1 - Mentse a feladatot.
A felhasználónevét és a domain mappájának pontos nevét a Fájlkezelőben látja: a domains mappán belül a domain nevével megegyező mappa, a tárhely gyökere pedig /home/<felhasználó>. Az időzített feladatokról általánosan: Időzített feladat (cron job) beállítása.
Figyelem: Ha a wp-config.php fájlban beállítja a DISABLE_WP_CRON sort, de a DirectAdminban nem hozza létre az időzített feladatot, a WordPress ütemezett feladatai egyáltalán nem futnak le – nem jelennek meg az ütemezett bejegyzések, és a webáruház vagy a hírlevél feladatai is elmaradnak.
Tipp: A 15 perces gyakoriság a legtöbb oldalnak elég. Ennél gyakoribbra csak akkor állítsa, ha egy bővítmény (például webáruház vagy hírlevélküldő) dokumentációja ezt kéri. Ha a tárhelyen több WordPress-oldal is van, mindegyikhez külön feladatot hozzon létre, a saját mappájával.