Czy masz problemy z zaplanowanymi działaniami, które nie działają w WordPress?
WordPress ma system planowania o nazwie wp-cron, ale czasami pomija zaplanowane zadania, takie jak publikowanie zaplanowanych wpisów, wysyłanie wyzwalanych e-maili itp. Prawidłowe zadania cron uruchamiane przez system operacyjny twojego serwera są często bardziej niezawodne.
W tym artykule pokażemy, jak łatwo wyłączyć wp-cron w WordPress i omówimy dwa sposoby konfigurowania odpowiednich zadań cron.
Dlaczego warto wyłączyć wp-cron?
Twoja witryna internetowa WordPress ma wbudowany system planowania o nazwie wp-cron. Wykonuje on zadania zależne od czasu, takie jak sprawdzanie aktualizacji, publikowanie zaplanowanych wpisów, automatyczne tworzenie regularnych kopii zapasowych, wysyłanie wyzwalanych wiadomości e-mail i wiele innych.
Możesz dowiedzieć się więcej w naszym przewodniku na temat tego, jak zobaczyć i kontrolować zadania cron WordPressa.
Problem polega na tym, że WordPress sprawdza zaplanowane zadania tylko wtedy, gdy ktoś przejdzie na twoją witrynę internetową. Działa to wystarczająco dobrze w przypadku większości witryn, ale czasami może powodować problemy w przypadku mniejszych witryn.
Na przykład, jeśli twoja witryna ma mały ruch, twoje zaplanowane wpisy mogą nie zostać opublikowane na czas. Jeśli twoja witryna ma duży ruch, wp-cron będzie często sprawdzany, co może mieć wpływ na wydajność witryny.
Teraz, jeśli chcesz tylko poprawić błąd braku zaplanowanych wpisów, możesz użyć darmowej wtyczki Missed Scheduled Publisher. Ale jeśli chcesz rozwiązać wszystkie problemy związane z zaplanowanymi działaniami, potrzebujesz prawdziwego zadania cron.
Prawdziwe zadanie cron jest uruchamiane przez system operacyjny twojego serwera WWW, a nie przez WordPress. Można go skonfigurować tak, aby sprawdzał zaplanowane zadania w bardziej niezawodny sposób. Domyślnie WordPress nie ma dostępu do konfiguracji na poziomie serwera, ale można to łatwo zrobić, postępując zgodnie z naszym poradnikiem.
Biorąc to pod uwagę, przyjrzyjmy się, jak łatwo wyłączyć wp-cron i skonfigurować odpowiednie zadanie cron. Oto, co omówimy w tym poradniku:
Wyłączanie wp-cron w WordPress
Aby wyłączyć wp-cron, należy edytować wp-config.php, który jest rdzeniem pliku konfiguracyjnego WordPress. Znajduje się on w katalogu głównym twojej witryny WordPress i będziesz musiał użyć klienta FTP lub menedżera plików w panelu sterowania hostingu.
Ten plik zawiera wiele poufnych informacji, a wprowadzenie niewłaściwych zmian może zepsuć twoją witrynę WordPress. Na wszelki wypadek zalecamy wykonanie kopii zapasowej tego pliku. Możesz dowiedzieć się, jak to zrobić, postępując zgodnie z naszym przewodnikiem na temat edycji wp-config.php w WordPress.
Będziesz musiał wkleić następujący kod do pliku wp-config.php tuż przed linią, która mówi: „To wszystko, przestań edytować! Szczęśliwego blogowania”:
define('DISABLE_WP_CRON', true);
Tak to powinno wyglądać.
Następnie zapisz plik i prześlij go z powrotem na twoją witrynę internetową.
WordPress nie będzie już uruchamiał wp-cron, gdy ktoś przejdzie na twoją witrynę internetową.
Metoda 1: Konfiguracja odpowiedniego zadania Cron na twoim hoście WordPress
Teraz musisz skonfigurować odpowiednie zadanie cron, aby uruchomić twoje zaplanowane zadania. Sposób, w jaki to zrobisz, będzie się różnić w zależności od narzędzi dostarczonych przez twojego dostawcę hostingu WordPress.
Najprostszym sposobem na skonfigurowanie zadań cron jest użycie cPanel, popularnego panelu sterowania witryną internetową dołączonego do wielu planów hostingowych, w tym Bluehost. W tym poradniku użyjemy cPanelu Bluehost.
Uwaga: Niektórzy hostingodawcy nie korzystają z cPanel, a niektórzy mogą nawet nie zezwalać na tworzenie zadań cron. W razie wątpliwości należy skontaktować się z dostawcą hostingu lub zapoznać się z jego dokumentacją pomocy technicznej. Zawsze możesz skorzystać z usługi cron innej firmy (sprawdź metodę 2).
Po zalogowaniu się na twoje konto hostingowe i przejściu na stronę „Witryny internetowe”, przełącz się na kartę „Zaawansowane” u góry.
Tutaj przewiń w dół do sekcji „Zadania Cron” i kliknij przycisk „Zarządzaj” obok niej. Pamiętaj, że pozycja tej sekcji może się różnić w zależności od dostawcy hostingu.
Spowoduje to przejście do nowej strony, na której można tworzyć nowe zadania cron.
Nie przejmuj się ostrzeżeniem, które zobaczysz o konieczności dobrej znajomości poleceń Linuksa. Potrzebne jest tylko jedno polecenie, które pokażemy poniżej.
W razie potrzeby można zmienić adres e-mail, na który będą wysyłane powiadomienia o zadaniach cron. Domyślnym adresem jest ten, którego użyłeś podczas rejestracji na swoim hostingu i będzie on działał dobrze na większości witryn internetowych.
Teraz przewińmy w dół do sekcji „Utwórz nowe zadanie cron” i skonfigurujmy zadanie cron.
Po pierwsze, musisz zdecydować, jak często zadanie cron będzie uruchamiane. Może to być dowolna częstotliwość, ale zalecamy odstępy 30-minutowe.
Będziesz musiał kliknąć przycisk „Ustawienia wspólne” i wybrać interwał czasowy z listy rozwijanej. Dwa razy na godzinę” to dobry wybór dla większości witryn, jeśli nie jesteś pewien.
Teraz możesz wpisz polecenie, które poprosi WordPressa o uruchomienie zaplanowanych zadań. Musisz wkleić następujący kod w polu „Polecenie”:
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Upewnij się, że zastąpiłeś „example.com” adresem URL twojej witryny internetowej.
Gdy już to zrobisz, kliknij przycisk „Add New Cron Job”, a zobaczysz nowe zadanie cron dodane do poniższej listy.
WordPress będzie teraz sprawdzał i uruchamiał zaplanowane zadania co 30 minut, a nie wtedy, gdy ktoś przejdzie na twoją witrynę internetową.
Metoda 2: Konfigurowanie odpowiedniego zadania Cron przy użyciu usługi innej firmy
Jeśli twój plan hostingowy nie oferuje odpowiednich zadań cron lub są one trudne do skonfigurowania, możesz zamiast tego skorzystać z usługi cron innej firmy.
Są to dedykowane usługi, które pozwalają skonfigurować zadania cron za pomocą prostego interfejsu. Oto kilka lepszych z nich:
- EasyCron ma darmowy plan, który wymaga comiesięcznego odnowienia
- cron-job.org jest usługą bezpłatną
- Cronitor jest darmowy, jeśli potrzebujesz tylko jednego zadania cron
- SetCronJob oferuje płatne plany już od 10 USD/rok
W tym poradniku użyjemy EasyCron, ponieważ jest łatwy w użyciu, a darmowy plan jest odpowiedni dla większości początkujących użytkowników.
Po utworzeniu bezpłatnego konta można utworzyć nowe zadanie cron, klikając przycisk „+ Cron Job” po lewej stronie.
Spowoduje to wyświetlenie ekranu „Utwórz zadanie Cron”. Najpierw należy wkleić następujący adres URL w polu „URL do wywołania”:
https://example.com/wp-cron.php?doing_wp_cron
Upewnij się, że zastąpiłeś „example.com” adresem URL twojej witryny.
Następnie należy wybrać opcję „Co 30 minut” z listy rozwijanej „Kiedy wykonać”. Po zakończeniu nie zapomnij kliknąć przycisku „Utwórz zadanie Cron”, aby zapisać twoje ustawienia.
Nowe zadanie cron zostanie dodane do listy i będzie uruchamiać wp-cron na twojej witrynie internetowej co 30 minut.
Bonus: Automatyczne planowanie wpisów na Twoim blogu WordPress
Po skonfigurowaniu odpowiednich zadań cron, wszystkie twoje zaplanowane zadania na blogu WordPress będą wykonywane bez przeszkód. Możesz nawet automatycznie zaplanować wpisy na twoim blogu.
Pozwoli ci to wybrać artykuł do losowej publikacji w wybranej przez ciebie wcześniej dacie publikacji. Aby to zrobić, musisz zainstalować i włączyć wtyczkę PublishPress Planner.
Po włączaniu, przejdź na stronę Planner ” Settings i przełącz się na kartę „Content Calendar” od góry. Tutaj zaznacz pole „Zaplanowane” obok opcji „Statusy do wyświetlenia czasu publikacji”.
Następnie należy wybrać format godziny publikacji twojego wpisu i kliknąć pole obok opcji „Domyślny czas publikacji dla wpisów utworzonych w kalendarzu”.
Spowoduje to wyświetlenie monitu, w którym można wybrać konkretny czas, godzinę i minutę dla zaplanowanych wpisów, które mają być publikowane codziennie. Pomysły można znaleźć w naszym poradniku na temat tego, kiedy najlepiej publikować wpisy na blogu.
Następnie kliknij przycisk „Zapisz zmiany”, aby zapisać twoje ustawienia.
Teraz możesz przejść do edytora bloków, gdzie możesz wybrać opcję „Zaplanowane” z rozwijanego menu „Status wpisu”.
Aby uzyskać więcej informacji, zapoznaj się z naszym poradnikiem na temat automatycznego planowania wpisów na blogu WordPress.
Mamy nadzieję, że ten poradnik pomógł ci dowiedzieć się, jak wyłączyć wp-cron w WordPress i skonfigurować odpowiednie zadania cron. Możesz również zapoznać się z naszym przewodnikiem krok po kroku po WordPress SEO lub sprawdzić naszą listę typowych błędów WordPress i sposobów ich poprawki.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Paula Coombes
Hello,
I’d just like to say thank you so much for this straightforward help.
I used Method 1.
I’ve carried out your instructions after reading everything at least 3 times and, for the first time ever, my WP health state has no problems!!
Thanks again.
WPBeginner Support
You’re welcome, glad our guide was helpful!
Administrator
Beth Alexander
Is there a way to check that the new corn job running from Control Panel is working?
WPBeginner Support
To check a cron job, we would recommend taking a look at our article below!
https://www.wpbeginner.com/plugins/how-to-view-and-control-wordpress-cron-jobs/
Administrator
Anita Richards
I am confused.
Woocommerce recommends setting the command as without the “?doing_wp_cron” part.
What is the difference?
WPBeginner Support
Unless we hear otherwise, the ?doing_wp_cron allows for some background processing that without would not be able to do.
Administrator
Anita Richards
Ok, that makes some sense. I guess that it must be the difference between the WP and Woo processes being run?
I ended up creating two corn jobs in cPanel one with and one without. Is that going to cause problems?
WPBeginner Support
It should be a slightly different method to achieve the same result.
It would depend on your site’s size for how multiple cron jobs would affect your hosting site, as your site becomes larger it may become an issue