Niedawno jeden z naszych czytelników zapytał, czy możliwe jest przeglądanie i kontrolowanie systemu zadań cron WordPress w kokpicie. Z naszego doświadczenia wynika, że jest to pytanie, które zadaje sobie wielu użytkowników WordPressa, zwłaszcza gdy stają się oni bardziej zaznajomieni z tym, jak WordPress działa za kulisami.
Jeśli nie jesteś zaznajomiony, Cron to technologia uruchamiania zaplanowanych zadań na serwerze WWW. WordPress posiada własny wbudowany cron, który umożliwia wykonywanie zaplanowanych zadań, takich jak sprawdzanie aktualizacji, publikowanie zaplanowanych postów itp.
W tym artykule pokażemy, jak zobaczyć i kontrolować zadania cron WordPressa.
Czym jest WordPress Cron? Jak to działa?
Cron to taksonomia techniczna używana dla poleceń uruchamianych w zaplanowanym czasie lub w regularnych odstępach czasu. Większość serwerów WWW używa go do utrzymania serwera i uruchamiania zaplanowanych zadań.
WordPress posiada własny system cron, który umożliwia wykonywanie zaplanowanych zadań. Na przykład sprawdzanie aktualizacji, usunięcie starych komentarzy z kosza, publikowanie zaplanowanych wpisów i tak dalej.
Wtyczki WordPress mogą również używać go do wykonywania zadań określonych przez użytkownika. Na przykład, twoja wtyczka do tworzenia kopii zapasowych WordPress może używać WordPress cron do automatycznego tworzenia kopii zapasowych według określonego harmonogramu.
Jednak nieodpowiedzialne korzystanie z WordPress cron przez wtyczki może spowolnić twoją witrynę internetową. Zwłaszcza, jeśli korzystasz z hostingu współdzielonego.
Jeśli wtyczka często wykonuje zadania wymagające dużej ilości zasobów, należy zidentyfikować problem i go poprawić.
Przyjrzyjmy się, jak zobaczyć i kontrolować system WordPress cron bez pisania jakiegokolwiek kodu.
Zobacz i kontroluj system WordPress Cron
Pierwszą rzeczą, którą musisz zrobić, jest zainstalowanie i włączanie wtyczki WP Crontrol. Aby uzyskać więcej informacji, zobacz nasz przewodnik krok po kroku, jak zainstalować wtyczkę WordPress.
Po włączaniu należy przejść na stronę Tools ” Cron Events, aby kontrolować ustawienia crona.
Zobaczysz listę wszystkich zdarzeń cron zaplanowanych do uruchomienia na twojej witrynie za pomocą systemu cron WordPress.
W pierwszej kolumnie zobaczysz nazwę haka, który uruchamia crona.
Nazwy haków zazwyczaj dają wskazówkę na temat tego, co robi dane wydarzenie.
Większość domyślnych haków WordPressa zaczyna się od przedrostka wp_, np. wp_update_plugins, wp_update_themes itp.
Twoje wtyczki WordPress mogą, ale nie muszą, używać własnych prefiksów dla swoich haków. Na przykład All in One SEO używa prefiksu aioseo_
.
Możesz również zobaczyć, kiedy cron zostanie uruchomiony jako następny i jaki będzie odstęp czasu między kolejnymi uruchomieniami.
Ostatnia kolumna na liście umożliwia edycję, usunięcie lub uruchomienie zdarzenia cron.
Ważne: Zamierzasz bardzo uważać na to, co robisz ze zdarzeniami cron i nigdy nie usuwaj domyślnego zdarzenia cron WordPress.
Załóżmy teraz, że widzisz zdarzenie cron utworzone przez wtyczkę WordPress, która jest dość zasobochłonna.
Najpierw powinieneś sprawdzić ustawienia wtyczki, aby zobaczyć, czy istnieje opcja kontrolowania jej stamtąd. Jeśli nie, możesz kliknąć odnośnik „Edytuj” obok zdarzenia cron, aby je zmienić.
Kliknięcie przycisku Edytuj spowoduje otwarcie karty „Modyfikuj zdarzenie Cron” poniżej.
W tym miejscu można zmienić częstotliwość uruchamiania wydarzenia.
Po zakończeniu kliknij przycisk „Modify Cron Event”, aby zapisać twoje ustawienia.
Dodawanie twoich własnych zdarzeń Cron w WordPressie
Wtyczka WP Crontrol ułatwia dodawanie własnych zadań cron do WordPressa. Wystarczy odwiedzić stronę Narzędzia ” Zdarzenia C ron i przewinąć w dół do karty „Dodaj zdarzenie Cron”.
Po pierwsze, musisz podać nazwę haka dla twojego zdarzenia cron. Nazwy haków nie mogą zawierać spacji ani znaków specjalnych.
Jeśli funkcja, którą chcesz wykonać, wymaga argumentów, możesz je podać.
Następnie musisz powiedzieć WordPressowi, kiedy następnym razem uruchomić crona. Możesz wpisz „teraz”, co spowoduje natychmiastowe uruchomienie crona, „jutro”, „+2 dni” lub „25-02-2020 12:34:00”.
Na koniec należy wybrać harmonogram. Można wybrać tryb godzinowy, dwa razy dziennie, codziennie lub raz w tygodniu. Możesz również ustawić wydarzenie jako niepowtarzające się.
Po zakończeniu kliknij przycisk „Dodaj zdarzenie Cron”, aby zapisać twoje zmiany.
Zauważysz, że twoje zdarzenie cron pojawi się teraz na liście zdarzeń.
Jednak obecnie nie robi nic, ponieważ nie powiedziałeś WordPressowi, co ma zrobić, gdy to zdarzenie zostanie wywołane.
Będziesz musiał dodać twój hak i funkcję, która uruchamia się po uruchomieniu haka cron.
add_action( 'wpb_custom_cron', 'wpb_custom_cron_func' );
function wpb_custom_cron_func() {
wp_mail( 'you@example.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
Nie zapomnij użyć swojego adresu e-mail.
Ta funkcja po prostu wysyła testowy e-mail, gdy cron zostanie uruchomiony. Możesz teraz przewinąć stronę w górę i kliknąć odnośnik „Uruchom teraz” obok twojego wydarzenia cron, aby je przetestować.
Uwaga: Korzystanie z crona wymaga średnio zaawansowanych umiejętności programowania i tworzenia WordPressa. Jeśli nie posiadasz tych umiejętności, zalecamy zatrudnienie programisty WordPress.
Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak przeglądać i kontrolować zadania cron WordPress. Zachęcamy również do zapoznania się z naszym przewodnikiem na temat masowej instalacji ulubionych wtyczek WordPress lub wyborem najlepszych wtyczek zabezpieczających WordPress.
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.
Paul Barrett
We run cron at server level because wp-cron overloads teh server. There’s is nothing on our site that is so time-critical the jobs need to running frequently. If we set the frequency to say daily, would WordPress have a problem?
WPBeginner Support
It would heavily depend on what is being done on the site and when. We do not have a specific recommendation for what can be delayed to that extent.
Administrator
Matt K
When I go to change the the recurrence on the Hooks, they just get changed back. Something isn’t right. Do I need to disable WP crons in wp-config.php first?
WPBeginner Support
It would depend on the specific chron job, if you reach out to the plugin’s support they should be able to assist
Administrator
Heinz
Can I deactivate or even delete WP Control plugin in after having set a cron job, so I don’t have too many plugins running and slow down the website?
WPBeginner Support
Yes, as long as you’ve used one of the default schedules (such as daily). If you’ve added a custom schedule any event that uses it will run once more but won’t repeat after that.
The plugin should not cause a slowdown of your site, for a better understanding of how WordPress plugins affect your site you may want to take a look at our article here:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Administrator
Andre Hesdahl
I am a newbee with WordPress and don’t know where to put (or how to execute) the code:
add_action( 'wpb_custom_cron’, 'wpb_custom_cron_func’ );
function wpb_custom_cron_func() {
wp_mail( 'you@example.com’, 'Automatic email’, 'Automatic scheduled email from WordPress to test cron’);
}
Jeff
Thanks for the article. Interesting to see the number of plugins that have cron jobs running often. Great peak under the hood plugin…
David
How can i configure the cron to every half hour?
hazel beaver
When I check the cron schedule the dates shown in the 'next run’ column are all in the past. Does that mean they are not running?
In the past I think I added 'true’ in the wp config file to stop automatic wp updates from breaking my site…. could this be the cause?
Janson
Does this work in Multi-site? Can one control crons for all instances in a multisite scenario?
Oleg
Great article, but no need for
if ( ! wp_next_scheduled( 'wpb_custom_cron’ ) ) {
wp_schedule_event( time(), 'hourly’, 'my_task_hook’ );
}
this part is done in the plugin,
beny salim
how can i add Recurrence like five minutes, ten minutes
Ahmad Sayeed
I tested you given example. It works like a superman. But please give us an example to send parameter. I have added the function while creating the even. But I don’t know how to use them on PHP function.
Please give us an example
Sunny
My website is coming up with a long wp cron string after my URL and I cant get rid of it. Any thoughts?
?doing_wp_cron=1499261576.8675799369812011718750 comes up after my url and its making me look really spammy. Your insight would be appreciated.
Aniket Ashtikar
Is that 'my_task_hook’ cron hook rightly mentioned there at line 2 or should that rather be changed to 'wpb_custom_cron’?
Matt
Do you know if its possible to visit a link in the wp-admin area? I have a plugin that adds admin features to my wordpress site but I really want this scheduled to happen every 24 hours. I have the link but obviously am required to be logged in.
Pam M
Do you need that first if statement shown in the sample code? It looks like it would override the ability to schedule and unschedule in the WP Crontrol plugin.
Your example worked nicely when I scheduled the job in the plugin and tested it with the Run Now option. I’ll see if I get an email at the scheduled time too.
Thanks for the helpful background info.
Nigam
Hi
When I am going to refresh the page of WP-Cron Events from wordpress admin then only run the event.