Kürzlich fragte einer unserer Leser, ob es möglich sei, das WordPress-Cron-Job-System im Dashboard anzuzeigen und zu steuern. Unserer Erfahrung nach ist dies eine Frage, die viele WordPress-Nutzer haben, vor allem, wenn sie mit der Funktionsweise von WordPress hinter den Kulissen vertrauter werden.
Cron ist eine Technologie zur Ausführung geplanter Aufgaben auf Webservern, falls Sie damit noch nicht vertraut sind. WordPress verfügt über einen eigenen eingebauten Cron, der es ermöglicht, geplante Aufgaben auszuführen, wie z. B. die Prüfung auf Aktualisierungen, die Veröffentlichung geplanter Beiträge usw.
In diesem Artikel zeigen wir Ihnen, wie Sie WordPress-Cron-Jobs anzeigen und steuern können.
Was ist WordPress Cron? Wie funktioniert es?
Cron ist ein technischer Begriff, der für Befehle verwendet wird, die zu bestimmten Zeiten oder in regelmäßigen Abständen ausgeführt werden. Die meisten Webserver verwenden ihn, um den Server zu warten und geplante Aufgaben auszuführen.
WordPress verfügt über ein eigenes Cron-System, mit dem geplante Aufgaben ausgeführt werden können. Zum Beispiel die Überprüfung auf Aktualisierungen, das Löschen alter Kommentare aus dem Papierkorb, die Veröffentlichung geplanter Beiträge und so weiter.
WordPress-Plugins können es auch verwenden, um von Ihnen festgelegte Aufgaben auszuführen. Zum Beispiel kann Ihr WordPress-Backup-Plugin WordPress Cron verwenden, um automatisch Backups nach einem bestimmten Zeitplan zu erstellen.
Die unverantwortliche Verwendung von WordPress-Cron durch Plugins kann jedoch Ihre Website verlangsamen. Vor allem, wenn Sie ein Shared Hosting nutzen.
Wenn ein Plugin häufig ressourcenintensive Aufgaben ausführt, müssen Sie das Problem erkennen und beheben.
Schauen wir uns an, wie man das WordPress-Cron-System anzeigen und steuern kann, ohne Code zu schreiben.
Ansicht und Kontrolle des WordPress-Cron-Systems
Als Erstes müssen Sie das WP Crontrol-Plugin installieren und aktivieren. Weitere Details finden Sie in unserer Schritt-für-Schritt-Anleitung für die Installation eines WordPress-Plugins.
Nach der Aktivierung müssen Sie die Seite Tools “ Cron Events besuchen, um die Cron-Einstellungen zu kontrollieren.
Sie sehen eine Liste aller Cron-Ereignisse, die mit dem WordPress-Cron-System für Ihre Website geplant sind.
In der ersten Spalte sehen Sie den Namen des Hooks, der den Cron ausführt.
Die Namen der Haken geben in der Regel einen Hinweis darauf, was das jeweilige Ereignis bewirkt.
Die meisten Standard-WordPress-Hooks beginnen mit einem wp_-Präfix, wie wp_update_plugins, wp_update_themes usw.
Ihre WordPress-Plugins können ihre eigenen Präfixe für ihre Hooks verwenden, müssen es aber nicht. All in One SEO verwendet zum Beispiel das Präfix aioseo_
.
Sie können auch sehen, wann ein Cron das nächste Mal ausgeführt wird und in welchem zeitlichen Abstand dies geschieht.
In der letzten Spalte der Liste können Sie ein Cron-Ereignis bearbeiten, löschen oder ausführen.
Wichtig: Seien Sie sehr vorsichtig, was Sie mit Cron-Ereignissen tun, und löschen Sie niemals ein Standard-WordPress-Cron-Ereignis.
Nehmen wir an, Sie sehen ein Cron-Ereignis, das von einem WordPress-Plugin erzeugt wird, das sehr ressourcenintensiv ist.
Zunächst sollten Sie in den Einstellungen des Plugins nachsehen, ob es eine Option gibt, um es von dort aus zu steuern. Ist dies nicht der Fall, können Sie auf den Link „Bearbeiten“ neben dem Cron-Ereignis klicken, um es zu ändern.
Wenn Sie auf die Schaltfläche „Bearbeiten“ klicken, öffnet sich die Registerkarte „Cron-Ereignis ändern“ weiter unten.
Hier können Sie festlegen, wie oft das Ereignis stattfinden soll.
Wenn Sie fertig sind, klicken Sie auf die Schaltfläche „Cron-Ereignis ändern“, um Ihre Einstellungen zu speichern.
Hinzufügen eigener Cron-Ereignisse in WordPress
Mit dem WP Crontrol-Plugin können Sie ganz einfach Ihre eigenen Cron-Jobs zu WordPress hinzufügen. Besuchen Sie einfach die Seite Tools “ Cron Events und scrollen Sie nach unten zur Registerkarte „Add Cron Event“.
Zunächst müssen Sie einen Hook-Namen für Ihr Cron-Ereignis angeben. Hook-Namen dürfen keine Leerzeichen oder Sonderzeichen enthalten.
Wenn die Funktion, die Sie ausführen möchten, Argumente benötigt, können Sie diese Argumente angeben.
Als nächstes müssen Sie WordPress mitteilen, wann der Cron das nächste Mal ausgeführt werden soll. Sie können „jetzt“ eingeben, was den Cron sofort auslöst, „morgen“, „+2 Tage“, oder „25-02-2020 12:34:00“.
Schließlich müssen Sie noch einen Zeitplan auswählen. Sie können stündlich, zweimal täglich, täglich oder einmal pro Woche wählen. Sie können auch ein sich nicht wiederholendes Ereignis festlegen.
Wenn Sie fertig sind, klicken Sie auf die Schaltfläche „Cron-Ereignis hinzufügen“, um Ihre Änderungen zu speichern.
Sie werden feststellen, dass Ihr Cron-Ereignis nun in der Ereignisliste erscheint.
Im Moment tut es jedoch nichts, weil Sie WordPress nicht mitgeteilt haben, was zu tun ist, wenn dieses Ereignis ausgelöst wird.
Sie müssen Ihren Hook und eine Funktion hinzufügen, die ausgeführt wird, wenn der Cron-Hook ausgelöst wird.
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');
}
Vergessen Sie nicht, Ihre eigene E-Mail-Adresse zu verwenden.
Diese Funktion sendet einfach eine Test-E-Mail an Sie, wenn der Cron-Event ausgeführt wird. Sie können nun auf der Seite nach oben scrollen und auf den Link „Jetzt ausführen“ neben Ihrem Cron-Ereignis klicken, um es zu testen.
Hinweis: Die Verwendung von cron erfordert mittlere Programmier- und WordPress-Entwicklungskenntnisse. Wenn Sie nicht über diese Kenntnisse verfügen, empfehlen wir, einen WordPress-Entwickler zu beauftragen.
Wir hoffen, dass Ihnen dieser Artikel geholfen hat, WordPress-Cron-Jobs anzuzeigen und zu steuern. Vielleicht interessiert Sie auch unsere Anleitung zur Masseninstallation Ihrer Lieblings-WordPress-Plugins oder unsere Expertenauswahl der besten WordPress-Sicherheitsplugins.
Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.
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.
Admin
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
Admin
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/
Admin
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.