Ich habe eine Baseball-Site mit mehreren Autoren. Ich möchte, dass Autoren die Veröffentlichung von Posts zu einer von vier ausgewählten Zeiten pro Tag planen können. Dies ist wichtig, da einige Autoren Spielrückblicke schreiben und eine automatische Veröffentlichung eines Spielrückblicks nach dem Start des folgenden Spiels ziemlich wertlos ist.
Ich suche nach einem Plugin, um dies zu verwalten. Durch Recherchen habe ich einige Plugins gefunden, die eine Zeit zwischen einer vom Administrator festgelegten Zeitspanne auswählen, aber ich suche nach etwas, bei dem der Administrator einen Kalender mit Tagen / Zeiten (oder Zeitbereichen) einrichten kann, um a Beitrag veröffentlicht werden und eine maximale Anzahl von Beiträgen für jedes Mal festlegen
Der Autor schreibt seinen Beitrag und erhält dann eine Auswahl von Daten / Zeiten, um die Veröffentlichung des Beitrags zu planen.
Wie bereits erwähnt, gibt es ähnliche Plugins, aber keines, das ich gefunden habe, ermöglicht es Administratoren, bestimmte Zeiten festzulegen.
Kennt jemand ein Plugin oder eine andere Methode? Das Plugin muss nicht kostenlos sein.
Update mit "Vision"
Admin-Einstellungen : Legen Sie die Daten fest, die für die Veröffentlichung nach der Veröffentlichung zulässig sind. Stellen Sie die zulässigen Zeiten für die Nachveröffentlichung ein. Legen Sie die Anzahl der Beiträge fest, deren Veröffentlichung zu jedem Zeitpunkt geplant werden darf (wenn die Planungsnummer pro Slot erreicht wurde, wird sie dem Autor nicht angezeigt).
Optionen für die Autorenplanung : Schaltfläche "Veröffentlichen" nicht vorhanden. Muss den Wochentag auswählen, an dem der Beitrag veröffentlicht werden soll >> Muss aus den verfügbaren Zeiten auswählen, um den Beitrag zu veröffentlichen.
quelle
Antworten:
Mein Ansatz besteht darin, ein stündliches Cron-Ereignis zu erstellen, das alle Entwürfe von Statusbeiträgen durchläuft und nach dem in post_meta gespeicherten Veröffentlichungsmonat - Datum und Stunde - sucht und veröffentlicht, wenn das geplante Datum nicht in der Zukunft liegt.
Dem Veröffentlichungsbereich wird ein Meta-Auswahlfeld für die Auswahl von Datum und Uhrzeit hinzugefügt, das bei Auswahl einer Uhrzeit über Ajax aktualisiert wird.
Aktualisieren:
Plugin und Datumsauswahl CSS zu Git hinzugefügt: https://github.com/c3mdigital/WP-Schedule
Die Cron-Funktion wurde geändert, um die in WordPress konfigurierte Zeitzone für die Veröffentlichung zu verwenden.
Aktualisieren:
Datum und Uhrzeit werden in post_meta als Array gespeichert:
month' => 'string', time => int
Die Zeit-Ganzzahl ist ein Wert, der eine Stunde des Tages 1-24 darstellt.Der Optionsbildschirm verfügt über 3 Eingänge.
Ich habe dem Bildschirm für die Nachbearbeitung eine jQuery UI-Datumsauswahl hinzugefügt, die auf die im Administrator ausgewählten Daten beschränkt ist. Datum und Uhrzeit werden mit Ajax aktualisiert und gespeichert.
Aktualisierter Plugin-Code:
@Todo: Erstellen Sie eine Validierungsfunktion zum Speichern der Optionen. Erstellen Sie eine Zähloption, in der gespeichert wird, wie viele Posts jedes Mal geplant sind, um diese Zeiten zu beschränken, sobald sie voll sind, und bereinigen und dokumentieren Sie den Code.
quelle
Hier ist meine Meinung: https://github.com/stephenh1988/Restrict-Publish
Dies wird zu einem richtigen Plug-In und irgendwann gemacht. Im Moment funktioniert es - aber Sie konfigurieren die Plug-In-Variablen manuell (dh noch keine Administratoroptionen).
Alle Einschränkungen gelten für Benutzer ohne die Fähigkeit dazu
manage_options
(dh Administratoren). Dies könnte aber auch geändert werden.Die Benutzeroberfläche
Die Idee ist, Javascript nach dem Laden des WP zu laden
post.js
(dies schließt das Java-Skript ein, das das Ändern der Zeiteingabe steuert. Das Plug-In überschreibt dies, indem es für die Veröffentlichungszeit auf "Bearbeiten" klickt, öffnet stattdessen eine jQuery-UI-Datumszeit Picker.Die Datums- / Uhrzeitauswahl lässt nur zu, dass bestimmte Daten nach bestimmten Regeln verfügbar sind (siehe unten). Alle anderen Daten sind nicht auswählbar. Bei Auswahl eines Datums / einer Uhrzeit werden die entsprechenden WordPress-Felder aktualisiert - und WordPress übernimmt den Rest der Verarbeitung .
Dieser Teil des Plug-Ins verhindert also nur die Eingabe bestimmter Daten.
(Die Datums- / Uhrzeitauswahl ist etwas zu niedrig positioniert - etwas, das mithilfe der jQuery-UI-Positionierung verbessert werden kann.)
Serverseitige Überprüfungen
Es führt auch eine Überprüfung durch
save_post
- nur für den Fall, dass (js deaktiviert? Vom Benutzer hacken?) Ein "verbotenes" Datum ausgewählt ist,save_post
überprüft der Rückruf das Datum erneut. Wenn sich herausstellt, dass es ungültig ist, wird verhindert, dass der Beitrag veröffentlicht / geplant wird (gemäß dieser Antwort) und stattdessen in den Entwurfsstatus zurückversetzt. Eine benutzerdefinierte Nachricht wird angezeigt (diese Nachricht kann durch die$fail_message
aktuelle Einstellung geändert werden ).Die Regeln
Diese sind sehr einfach. Die in einem
$allows
Array gespeicherten Regeln :'days_in_week' ist ein Array von Ganzzahlen, die angeben, an welchen Tagen (0 = Sonntag, 1 = Montag) der Benutzer Daten veröffentlichen kann. In ähnlicher Weise speichert 'month_in_year' ein Array zulässiger Monate (1 = Januar, ...). Zusätzliche Regeln können ganz einfach hinzugefügt werden (einschließlich einer Auswahlliste von vom Administrator festgelegten Daten).
Begrenzte geplante Post
Es gibt auch eine
$limit
Variable, die die Anzahl der geplanten Posts begrenzt, die ein Benutzer haben kann. Wenn sie diese Grenze erreichen, verlieren sie die Möglichkeit zur Veröffentlichung (stattdessen müssen sie zur Überprüfung eingereicht werden - Sie könnten das Recht entfernen, sogar Beiträge zu erstellen, aber dies würde auch die Bearbeitung verhindern).Der Plug-In-Code
Siehe dieses GitHub-Repro: https://github.com/stephenh1988/Restrict-Publish
quelle