Ha a WordPress oldala néha lassabban tölt be, vagy az ütemezett bejegyzései nem jelennek meg időben, annak gyakran a WordPress beépített időzítője, a WP-Cron az oka. A cPanel tárhelyen ezt egy valódi, a szerver által időzített feladatra cserélheti.
Mi a WP-Cron, és mi a baja?
A WordPress az időzített feladatait (ütemezett bejegyzések, frissítések keresése, bővítmények karbantartó feladatai, webáruházi e-mailek) a wp-cron.php fájllal futtatja. Ez azonban nem a szerver órájához igazodik: akkor indul el, amikor valaki megnyit egy oldalt. Ennek következményei:
- ha az oldalnak éppen nincs látogatója, a feladatok késnek (például egy éjfélre ütemezett bejegyzés csak az első reggeli látogatáskor jelenik meg);
- egy nagy forgalmú oldalon szükségtelenül sokszor fut, és a futás az adott látogató oldalbetöltését lassítja;
- egyes gyorsítótár-bővítmények vagy hibás DNS-beállítások miatt egyáltalán nem indul el.
A megoldás: a WP-Cront kikapcsolja, és a szerver cron-feladata hívja meg rendszeresen, például negyedóránként. (A cron általános használatáról a cPanel időzített feladatairól (cron job) szóló cikk szól.)
A legegyszerűbb út: WP Toolkit
Ha a WordPresst a WP Toolkit kezeli (a cPanel WordPress Management menüpontja), a webhely áttekintőjében, a Teljesítmény résznél kapcsolja be a wp-cron.php fájl átvétele opciót. A WP Toolkit ilyenkor maga kapcsolja ki a WP-Cront, és beállítja helyette a szerveroldali időzítést; az alábbi kézi lépésekre nincs szükség.
Kézi beállítás a Cron-feladatok menüpontban
-
Jelentkezzen be a cPanelbe, és a Speciális csoportban kattintson a Cron-feladatok menüpontra.
- Az Új cron-feladat hozzáadása részben állítsa be az ütemezést. Negyedórás futáshoz a Perc mező melletti listából válassza a Tizenöt percenként egyszer (*/15) lehetőséget, a többi mezőben (Óra, Nap, Hónap, Hétköznap) maradjon a
*(minden). -
A Parancs mezőbe írja az alábbi parancsok egyikét (a
felhasznalonevhelyére a cPanel-felhasználónevét, a mappa helyére a WordPress mappáját írja; a fő domainnél ez apublic_html):PHP-val, közvetlenül (ajánlott, nem függ a DNS-től és a webszervertől):
/usr/local/bin/php /home/felhasznalonev/public_html/wp-cron.php > /dev/null 2>&1WP-CLI-vel (csak az esedékes feladatokat futtatja):
/usr/local/bin/wp cron event run --due-now --path=/home/felhasznalonev/public_html > /dev/null 2>&1Weboldalcím meghívásával, ha a fentiek valamiért nem működnek:
wget -q -O - https://pelda.hu/wp-cron.php?doing_wp_cron > /dev/null 2>&1A
> /dev/null 2>&1rész miatt a rendszer nem küld e-mailt minden futásról. -
Kattintson az Új cron-feladat hozzáadása gombra.
A feladat megjelenik az oldal alján, a Jelenlegi cron-feladatok listában, ahol a Szerkesztés és a Törlés hivatkozással módosíthatja.
A WP-Cron kikapcsolása
Ha a szerver cron-feladata már fut, kapcsolja ki a WordPress beépített időzítőjét, különben mindkettő futna. Ehhez a WordPress gyökérmappájában lévő wp-config.php fájlba, a /* That's all, stop editing! */ sor elé írja be:
define('DISABLE_WP_CRON', true);
A fájlt a cPanel Fájlkezelőjében szerkesztheti (Fájlkezelő).
Ellenőrzés
- Ütemezzen be egy próbabejegyzést néhány perccel későbbre, és nézze meg, hogy a következő cron-futás után megjelenik-e.
- A WordPress Eszközök › Webhely egészség oldala jelzi, ha az ütemezett események késnek.
- Ha a parancs hibát ad, ideiglenesen törölje a végéről a
> /dev/null 2>&1részt, és adja meg a Cron e-mail mezőben a címét: a következő futás kimenetét e-mailben megkapja.


