Jeśli musisz się pomęczyć z WordPressowym Cronem to może przyda Ci się moja nowa (druga) wtyczka – Advanced Cron Manager. Mam nadzieję, że ten projekt nie umrze tak jak Gugl ;)
Czym jest Cron i po co w ogóle go stosować?
Zadanie Crona jest proste – wywołać określoną funkcję o określonym czasie. To wszystko. A po co Cron w WordPressie? Do rozmaitych rzeczy. Jak zainstalujesz moją wtyczkę to zobaczysz na pewno 6 zadań służących między innymi do sprawdzenia czy są nowe wersje wtyczek albo usunięcia starych rewizji wpisów. To są domyślne zadania WordPressa.
Ale mi się nie wykonuje :(
Czy Tobie też zdarzyło się wejść na swojego bloga, zobaczyć 0 aktualizacji, po czym po kilku odświeżeniach napotkać na jakieś? To właśnie zadziałał WP Cron i właśnie poznałeś jego minus. Jeśli zadanie będzie ustawione na godzinę 15:00, a w godzinach 14:00 – 17:00 nie będziesz mieć żadnych odwiedzin to przykro mi. Jeśli od tego zależało wysłanie raportu z WordPressa do szefa to właśnie straciłeś pracę. Dlaczego? Bo Cron w WP odpalany jest tylko i wyłącznie przy odwiedzinach. Więc jeśli następne wywołanie strony będzie o godzinie 17:00 to zadanie mimo, że ustawione na 15:00 wykona się o 17:00.
Działa to tak, że w WP jest tablica zadań. WordPress przy każdym uruchomieniu strony sprawdza czy któreś zadanie się nie „przeterminowało” i jeśli tak to wywołuje akcje z podanym hakiem.
Czemu więc nie użyć serwerowego Crona tylko tego w WP?
Bo jesteś masochistą i lubisz cierpieć. Ale na pocieszenie mam dla Ciebie informację, że można odpiąć WordPressowego Crona i podpiąć go pod Crona na serwerze. Jak to zrobić niżej.
A co z Advanced Cron Manager?
Wtyczką możesz dodawać/usuwać zadania Crona oraz dodawać/usuwać harmonogramy. (Prawie) wszystko śmiga na AJAXie, bo ostatnio fajnie mi się pisze AJAXowe pytania, więc bez włączonego Javascriptu ani rusz.
W panelu administracyjnym wygląda to tak:
Zachęcam do pobierania, testowania i hejtowania :)
Zmiana WP Cron na Cron
Przepis jest prosty. Wejdź w panel administracyjny Twojego serwera i szukaj czegoś podobnego do Add New Cron Job (cPanel). Jeśli Twój adres strony to adres-strony.pl to zadanie Crona wygląda tak:
wget -q -O - http://adres-strony.pl/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Czas najlepiej ustawić na 15-30 minut.
Pozostało jeszcze tylko odpiąć Crona z WP dopisując w wp-config.php:
define('DISABLE_WP_CRON', true);
I to wszystko. Cron w WP chodzi teraz niezależnie od odwiedzin.
na pewno skorzystam, dziękuję ! :))
Co jak co, ale większość osób w moim przekonaniu rzadko stosuje Crona :)
Zrób może jakąś inną wtyczkę, o bardziej pospolitych funkcjach :) Ja na ten przykład bardzo mocno ubolewam nad brakiem pluginu do encyklopedii :)
P.S. Znasz może MQL?
Do encyklopedii? Rozwiń proszę :)
MQL niestety nie jest mi znane.
Coś w stylu Explanatory Dictionary tylko rozbudowane chociażby o wyszukiwarkę haseł i polskie literki :)