Bessere Lösung für die Verwaltung von Medienanhängen mit `wp_editor ()`?

Derzeit mit wp_editor(); auf der Vorderseite meiner Website als Formular zur Einreichung von Inhalten. Alle eingereichten Posts werden als “Ausstehend” festgelegt, die später von einem Administrator veröffentlicht oder gelöscht werden.

Der Button “Medien wp_editor(); ” wurde im wp_editor(); erlaubt wp_editor(); Anruf.

Benutzer müssen registriert und mit einer Benutzerrolle “Autor” angemeldet sein.

Autoren dürfen ihre eigenen Beiträge verwalten. Wenn Sie jedoch als Autorbenutzer auf die Schaltfläche “Medien hinzufügen” klicken, schlagen alle Uploads fehl. Aufgrund der Tatsache, dass alles über wp_editor(); hochgeladen wurde wp_editor(); fügt die Anhänge zu dieser Seite hinzu. edit_pages würde erfordern, dass der Benutzer die folgenden functionen hat: edit_pages , edit_published_pages und edit_others_pages , aber wie Sie wissen, edit_published_pages die Standardfunktionen für einen “Author” -Benutzer nicht über diese functionen, die wiederum den Upload bewirken Scheitern.

Meine Arbeit um Lösung:

 public function modify_author_role(){ if(is_page('submit-content')){ $role = get_role('author'); $role->remove_cap('read'); $role->add_cap('edit_pages'); $role->add_cap('edit_published_pages'); $role->add_cap('edit_others_pages'); } else{ $role = get_role('author'); $role->add_cap('read'); $role->remove_cap('edit_pages'); $role->remove_cap('edit_published_pages'); $role->remove_cap('edit_others_pages'); } } add_action('template_redirect', array($this, 'modify_author_role')); 

Wenn der Benutzer “Author” angemeldet ist und die Seite zum Einreichen von Inhalten edit_pages , werden ihm vorübergehend die folgenden functionen edit_pages : edit_pages , edit_published_pages und edit_others_pages , während die function entfernt wird: read (Zugriff auf das Dashboard verweigern – bei Zugriff versuchen die Inhaltseinreichungsseite)

Wenn sich der Benutzer des Autors auf einer anderen Seite der Website befindet oder direkt auf das Dashboard zugreift, hat er normalen Zugriff und normale Autorefunktionen.

Dem Benutzer des Autors werden nur vorübergehend höhere Rechte gewährt, wenn er Inhalte auf der Vorderseite der Website einreicht.

Ich habe das Gefühl, dass dies ein großes Sicherheitsrisiko darstellt. Es gibt eine elegantere Lösung als diese.

Gibt es eine Möglichkeit, die wp_editor(); über wp_editor(); auf der Seite für die Übermittlung von Inhalten, damit der Benutzer des Autors die Datei hochladen und nicht an die Seite für die Übermittlung von Inhalten anhängen kann (die restlichen Inhalte bleiben erhalten)?

Solutions Collecting From Web of "Bessere Lösung für die Verwaltung von Medienanhängen mit `wp_editor ()`?"

Ja, die bessere Lösung ist die Verwendung von add_role( $role, $display_name, $capabilities ); und machen Sie eine klare Rolle für das Frontend.

Auf diese Weise haben Sie eine Trennung der Fähigkeiten, die leichter zu verwalten ist, die Art und Weise, wie Sie es tun, wird zu Schwierigkeiten führen.