WP Crontrol

Beschreibung

WP Crontrol lässt dich anzeigen und kontrollieren, was im WP-Cron-System passiert. In der Admin-Ansicht kannst du:

  • Alle Cron-Ereignisse mit ihren Argumenten, Wiederholungen, Callback-Funktionen anzeigen und wann sie das nächste Mal ausgeführt werden sollen.
  • Alle Cron-Ereignisse bearbeiten, löschen und sofort ausführen.
  • Neue Cron-Ereignisse hinzufügen.
  • Cron-Ereignisse per Massenverarbeitung löschen.
  • Individuelle Cron-Zeitpläne hinzufügen, bearbeiten und entfernen.

Die Admin-Ansicht wird dir eine Warnmeldung anzeigen, wenn dein Cron-System als nicht funktionstüchtig erkannt wird (beispielsweise wenn dein Server sich nicht zu sich selbst verbinden kann, um geplante Cron-Ereignisse auszuführen).

Nutzung

  1. Gehe zum Menü Werkzeuge → Cron-Ereignisse, um Cron-Ereignisse zu verwalten.
  2. Gehe zum Menü Einstellungen → Cron-Zeitpläne, um Cron-Zeitpläne zu verwalten.

Screenshots

  • Neue Cron-Ereignisse können hinzugefügt, verändert, entfernt und ausgeführt werden

  • Neue Cron-Zeitpläne können hinzugefügt werden, um Plugin-Entwicklern mehr Optionen zu geben, Ereignisse zu planen

FAQ

Was ist der Sinn hinter dem Hinzufügen von neuen Cron-Zeitplänen?

Cron-Zeitplöne werden von WordPress und Plugins benutzt, um Ereignisse zu planen, die in normalen Intervallen ausgeführt werden. Intervalle müssen vom WordPress-Core oder von einem Plugin bereitgestellt werden, um benutzt werden zu können. Als Beispiel bieten viele Sicherungs-Plugins Unterstützung für periodische Sicherungen an. Um eine wöchentliche Sicherung zu erstellen, muss ein wöchentlicher Zeitplan zuerst in WP Crontrol hinzugefügt werden, damit ein Sicherungs-Plugin diesen Zeitplan als Intervall benutzen kann.

Wie erstelle ich ein neues Cron-Ereignis?

Es sind zwei Schritte erforderlich, um ein funktionierendes Cron-Ereignis zu erhalten, das regelmäßig ausgeführt wird. Der erste Schritt besteht darin, WordPress den Hook mitzuteilen. Das ist der Teil, für den WP Crontrol erstellt wurde. Der zweite Schritt ist, eine Funktion auszuführen, wenn dein Hook ausgeführt wird.

Schritt Eins: Den Hook hinzufügen

Klicke im Adminbereich unter Werkzeuge → Cron-Ereignisse auf den Tab „Cron-Ereignis hinzufügen“, um die Details zum Hook einzutragen. Am besten ist es, wenn der Hook-Name den normalen PHP-Variablen-Regeln entspricht. Der Ereignis-Zeitplan steht dafür, wie oft dein Hook ausgeführt werden wird. Wenn du kein passendes Intervall siehst, dann füge eins im Adminbereich unter Einstellungen → Cron-Zeitpläne hinzu.

Schritt Zwei: Schreiben der Funktion

Dieser Teil muss in den PHP-Code (beispielsweise in der functions.php deines Themes). Um deinen Hook auszuführen, führt WordPress eine Action aus. Aus diesem Grund müssen wir WordPress sagen, welche Funktion ausgeführt werden soll, wenn diese Action läuft. Die folgende Zeile erledigt das:

add_action( 'my_hookname', 'my_function' );

Der nächste Schritt ist das Schreiben deiner Funktion. Hier gibt es ein einfaches Beispiel:

function my_function() {
    wp_mail( 'hello@example.com', 'WP Crontrol', 'WP Crontrol rocks!' );
}

Wie erstelle ich ein neues PHP-Cron-Ereignis?

Klicke im Adminbereich unter Werkzeuge → Cron-Ereignisse auf den Tab „PHP-Cron-Ereignis hinzufügen“. Gib den Zeitplan und die nächste Ausführungszeit in den Boxen an, die sich in dem dort angezeigten Formular befinden. Der Ereignis-Zeitplan gibt an, wie oft dein Ereignis ausgeführt werden wird. Wenn du kein passendes Intervall siehst, dann füge eins im Adminbereich unter Einstellungen → Cron-Zeitpläne hinzu. Gib den PHP-Code im Bereich „Hook-Code“ ein, den du ausführen willst, wenn dein Cron-Ereignis ausgeführt wird. Du musst keinen öffnenden PHP-Tag (<?php) angeben.

Welche Benutzer können Cron-Ereignisse und -Zeitpläne verwalten?

Nur Benutzer mit der manage_options-Berechtigung können Cron-Ereignisse und -Zeitpläne verwalten. Standardmäßig haben nur Administratoren diese Berechtigung.

Welche Benutzer können PHP-Cron-Ereignisse verwalten? Ist das gefährlich?

Nur Benutzer mit der Berechtigung edit_files können PHP-Cron-Ereignisse verwalten. Das heißt, wenn ein Benutzer keine Dateien auf der Website bearbeiten darf (z. B. durch den Plugin- oder Theme-Editor), kann er auch keine PHP-Cron-Ereignisse bearbeiten oder hinzufügen. Standardmäßig haben nur Administratoren diese Berechtigung und bei aktiver Multisite haben nur Super-Administratoren diese Berechtigung.

Wenn die Dateibearbeitung über die Konfigurations-Konstanten DISALLOW_FILE_MODS oder DISALLOW_FILE_EDIT deaktiviert wurden, hat kein Benutzer die Berechtigung edit_files, wodurch das Bearbeiten oder Hinzufügen eines PHP-Cron-Ereignisses nicht erlaubt ist.

Deshalb ändert sich die erforderliche Berechtigung mit aktiviertem WP Crontrol nicht, um beliebigen PHP-Code auszuführen.

Sind irgendwelche WP-CLI-Befehle verfügbar?

Die Cron-Befehle, die vormals ein Teil von WP Crontrol waren, sind nun Teil der WP-CLI (seit 0.16), sodass dieses Plugin nicht länger WP-CLI-Befehle bereitstellt. Siehe wp help cron für weitere Informationen.

Rezensionen

19. Mai 2020
This is a very handy tool to control your WordPress Cron Jobs. New interface in version 1.8.3 is great. A big thank you to the development team.
9. Mai 2020
Perfect Plugin, does exactly what it should do and nothing more. This is what i like! You should use it only if you know what you are doing 😉
11. Dezember 2019
Great and simple plugin, practically a must for managing/adding cron events to WP.
Lies alle 94 Rezensionen

Mitwirkende & Entwickler

„WP Crontrol“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

„WP Crontrol“ wurde in 11 Sprachen übersetzt. Danke an die Übersetzerinnen und Übersetzer für ihre Mitwirkung.

Übersetze „WP Crontrol“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN Repository an oder abonniere das Entwicklungsprotokoll per RSS.

Änderungsprotokoll

1.8.5

  • Ein Problem mit den Tabs in 1.8.4 wurde behoben.

1.8.4

  • Fügt eine Warnmeldung hinzu, wenn die Standard-Zeitzone geändert wurde. Weitere Informationen (engl.).
  • Es wurde ein Fehler behoben, bei dem eine Zeichenfolge an die Funktion strtotime() übergeben wurde, wenn die Option Jetzt beim Hinzufügen oder Bearbeiten eines Ereignisses ausgewählt wurde.

1.8.3

  • Das Bearbeiten von Ereignissen, die aktuell nicht auf der ersten Seite der Ergebnisse aufgelistet werden, ist korrigiert.

1.8.2

  • Umgeht die Prüfung auf ein identisches Ereignis, wenn es manuell ausgeführt wird. Das erlaubt das manuelle Ausführen eines Ereignisses auch, wenn es innerhalb der nächsten zehn Minuten ausgeführt werden soll oder überfällig ist.
  • Erzwinge das Ausführen nur eines Ereignisses, wenn ein Cron-Event manuell ausgeführt werden soll.
  • Polling der Ereignis-Liste wurde hinzugefügt, um eine Warnung hinzuzufügen, wenn die Ansicht der Ereignis-Liste veraltet ist.
  • Eine Warnung für Cron-Zeitpläne ist hinzugefügt, die kürzer als WP_CRON_LOCK_TIMEOUT sind.
  • Die Prüfung für den Website-Zustand ist zur Liste der persistenten Core-Hooks hinzugefügt.

1.8.1

  • Behebt das untere Massenverarbeitungsmenü in der Ereignis-Listenansicht.
  • Macht die Zeitzone prominenter beim Hinzufügen oder Bearbeiten eines Cron-Ereignisses.

1.8.0

  • Durchsuchen und Seitennummerierung für Cron-Ereignisse
  • Möglichkeit zum Entfernen aller Cron-Ereignisse eines bestimmten Hooks
  • Genauere Antwort-Nachrichten, wenn Ereignisse verwaltet werden (in WordPress 5.1+)
  • Visuelle Warnungen für Ereignisse ohne Actions und PHP-Ereignisse mit Syntax-Fehlern
  • Zeitzonenbezogene Klarstellungen und Korrekturen
  • Eine einheitlichere UI
  • Code-Basis modernisiert

1.7.1

  • Die URL zu PHP.net für die Referenz von strtotime() korrigiert.

1.7.0

  • Entfernt die Eingabefelder für date und time und ersetzt sie mit einigen Vorauswahl-Optionen und einem reinen Textfeld. Korrigiert #24 .
  • Stelle sicher, dass der Zeitplan-Name ist immer korrekt, wenn mehrere Zeitpläne mit demselben Intervall existieren. Fehlerbehandlung hinzugefügt. Korrigiert #25.
  • Die Anzeige der aktuellen Website-Zeit wurde wieder eingeführt.
  • Benutzt einen passenderen HTTP-Antwort-Code für nicht autorisierte Anfrage-Fehler.

1.6.2

  • Entfernt die Möglichkeit, ein PHP-Cron-Ereignis zu löschen, wenn der Benutzer keine Dateien bearbeiten kann.
  • Entfernt den Bearbeiten-Link für PHP-Cron-Ereignisse, wenn der Benutzer das Ereignis nicht bearbeiten kann.
  • Verhindere einen PHP-Hinweis aufgrund einer undefinierten Variable beim Hinzufügen eines neuen Cron-Ereignisses.

1.6.1

  • Behebt einen potenziellen fatalen Fehler in der Ansicht der Cron-Ereignis-Liste.

1.6

  • Massenentfernung von Cron-Ereignissen eingeführt. Juhu!
  • Zeigt den Zeitplan-Namen anstatt des Zeitplan-Intervalls neben jedem Ereignis an.
  • Fügt das neue Cor-Ereignis delete_expired_transients zur Liste der Core-Ereignisse hinzu.
  • Verhindere das Entfernen von individuellen Cron-Zeitplänen, wenn diese benutzt werden.
  • Fügt Links zwischen den Ereignissen- und Zeitplan-Admin-Ansichten hinzu.
  • Fügt Syntax-Hervorhebung zum PHP-Code-Editor für PHP-Cron-Ereignisse hinzu.
  • Darstellungskorrekturen für Ereignisse mit vielen oder langen Argumenten.
  • Verbesserungen am Hilfe-Text.
  • Benutzung von create_function() entfernt.
  • Behebt einige Übersetzer-Kommentare, verbessert i18n, verbessert Coding-Standards.

1.5.0

  • Zeige die eingehängten Aktionen für jedes Cron-Ereignis.
  • Zeigt den Entfernen-Link für die im Core integrierten Cron-Ereignisse nicht an, da diese sofort erneut hinzugefügt werden.
  • Erfolgsnachricht nach dem Hinzufügen oder Bearbeiten eines PHP-Cron-Ereignisses korrigiert.
  • Name des Übersetzungsverzeichnis korrigiert.

1.4

  • Wechsle die erforderliche Angabe des Cron-Ereigniszeitpunkts in der lokalen Website-Zeitzone anstatt in UTC.
  • Fügt die Möglichkeit für PHP-Cron-Ereignisse hinzu, einen optionalen Anzeigenamen anzugeben.
  • Bessere UX für Benutzer, die Dateien nicht bearbeiten können und deshalb keine PHP-Cron-Ereignisse hinzufügen oder bearbeiten können.
  • Verbesserungen bezüglich der Terminologie und i18n.

1.3.1

  • Zeige eine weniger beängstigend aussehende Nachricht an, wenn DISABLE_WP_CRON definiert ist.
  • Korrigiert den Beispiel-Code für Cron-Ereignis-Argumente.

1.3

  • Verbesserungen an der UI.
  • Weitere Fehlererkennungen, wenn die WP-Cron-Funktionalität getestet wird.
  • Überprüfung der Berechtigungen auf Einzel-Websites und Multisites verbessert.
  • Viele Maskierungen und Säuberungen.
  • Verschiedene Fehler behoben, wenn mehrere Ereignisse denselben Hook-Namen haben.
  • WP-CLI-Befehle entfernt, da sie nun im Core von WP-CLI hinzugefügt wurden (siehe wp help cron für weitere Informationen)

1.2.3

  • Optimierungen bezüglich i18n und Datums- und Argumenten-Formatierung
  • Korrektes Maskieren der Abfrage-Variable crontrol_message (Danke an Julio Potier)

1.2.2

  • Die WP-CLI-Befehle wp crontrol run-event und wp crontrol delete-event wurden hinzugefügt
  • Sprache bezüglich Hooks/Einträgen/Ereignissen klarer formuliert

1.2.1

  • Anzeige der Lokalzeit bei der Auflistung von Cron-Ereignissen korrigiert
  • Ein PHP-Hinweis entfernt
  • Leite den Ausführungstest für WP-Cron durch denselben Filter wie die eigentliche Ausführung

1.2

  • Unterstützung für WP-CLI hinzugefügt
  • PHP4-Code entfernt, der nicht mehr relevant ist

1.1

  • Fehlerbehebung für das Ausführen von Cron-Ereignissen und Hinzufügen von Cron-Zeitplänen
  • Ein Test beim Aufruf von Crons wurde hinzugefügt, um auf Fehler beim Aufruf eines Crons zu testen
  • Mehrere kleine Optimierungen
  • Kompatibilität zu WordPress 3.4

1.0

  • Eingabe von PHP-Code für Cron-Ereignisse
  • Nicht-wiederholende Cron-Ereignisse
  • Behandelt Cron-Ereignisse mit Argumenten

0.3

  • Internationalisierung
  • Bearbeiten/Löschen/Ausführen von Cron-Ereignissen
  • Mehr Text, Statusnachrichten etc.
  • Erlaube einem Benutzer, ein geplantes Ereignis auf menschliche Art und Weise einzugeben
  • Sieht in WordPress 2.5 besser aus

0.2

  • Der Code wurde vollständig dokumentiert.
  • Behebt einen Fehler, wodurch die Aktivierungsaktion nicht ausgeführt wird, wenn das Plugin nicht in einem Unterverzeichnis lag.
  • Arbeitet nun problemlos auch wenn andere Plugins zusätzliche Cron-Zeitpläne hinzufügen.
  • Kleinere kosmetische Korrekturen.

0.1

  • Super minimal, schau dir die WP-Cron-Funktionalität an.