OK, ich suche nach dem besten Weg, dies anzugreifen.
Ich bin mit PHP sehr vertraut und erstelle benutzerdefinierte Beitragstypen mit benutzerdefinierten Metafeldern in WordPress.
Folgendes schaue ich mir an:
- Der Benutzer registriert sich und ist standardmäßig auf den Abonnenten eingestellt.
- Der Benutzer fordert vom Administrator die Berechtigung zum benutzerdefinierten Beitragstyp an.
- Der Administrator weist dem Benutzer einen anderen Berechtigungsnamen zu, z. B. "Shop-Inhaber".
- Der Benutzer kann nun den benutzerdefinierten Beitragstyp sehen und einen Eintrag zu diesem Beitragstyp vornehmen.
- Der Benutzer kann nur seinen eigenen Beitrag sehen und bearbeiten.
Ich brauche Hilfe in folgenden Bereichen:
- Wie erstelle ich eine neue "Rolle" mit dem Namen "Ladenbesitzer"?
- So geben Sie der Rolle die richtige Berechtigung, nur benutzerdefinierte Beitragstypen anzuzeigen und darauf zuzugreifen.
- Nur Benutzer dürfen ihre eigenen Beiträge zu diesem benutzerdefinierten Beitragstyp anzeigen und bearbeiten.
Idealerweise würde ich bevorzugen, dass dies alles vom wp-admin erledigt wurde, aber ich vermute, dass ich möglicherweise ein Front-End dafür bauen muss, um die finite Kontrolle zu bekommen, die ich anstrebe.
Jede Eingabe wird sehr geschätzt.
Mit freundlichen Grüßen
'map_meta_cap' => true
und'capability_type' => 'shopowner'
auf meinen benutzerdefinierten Beitragstyp gesetzt. Ich habe eine neue Rolle mit dem Namen erstelltShopOwner
und ihr die Funktionen read, edit_shopowner, delete_shopowner gegeben. Legen Sie einen Benutzer als ShopOwner fest und melden Sie sich mit diesem Benutzer an. Dieser Benutzer kann den benutzerdefinierten Beitragstyp nicht sehen. Habe ich etwas verpasstedit_shopowners
unddelete_shopowners
.edit_shopowner
unddelete_shopowner
sind Metafunktionen, gegen die eigentlich nie geprüft wird. Sie werden überprüft, wenn jemand versucht, ein bestimmtes Element zu bearbeiten oder zu löschen, und prüfen dann beispielsweise Folgendes: "Kann dieser Benutzer diese Elementtypen löschen? Können sie nur ihre eigenen oder auch andere Elemente löschen? Können sie veröffentlichte Elemente löschen?" etc.Der Registerpost-Typ hat einen Parameter mit der Bezeichnung "Capabilities", über den Sie beispielsweise verfügen können
http://codex.wordpress.org/Function_Reference/register_post_type
Um einen neuen Benutzer / eine neue Rolle / eine neue Funktion zu erstellen, können Sie add_role, add_cap, verwenden. Dies ist ein einfaches Beispiel für den Einstieg:
quelle
Haben Sie darüber nachgedacht, sich Gravity Forms oder TDO Mini Forms anzuschauen , um den eigentlichen Inhalt zu übermitteln? Sie verfügen jeweils über Funktionen, die Sie auf dem Weg zu einem sicheren Umgang mit vom Benutzer eingereichten Inhalten weiterbringen.
quelle
Eine einfachere und effizientere Möglichkeit, wie dies durch die Installation eines Plugins namens "Advance Access Manager" erreicht werden kann, besteht darin, dass Sie die Funktionalität nicht schreiben müssen, aber dennoch ein angemessenes Maß an Kontrolle über die Benutzer, Rollen und deren Funktionen haben. Das meiste, was Sie wollen, können Sie mit diesem Plugin erreichen.
quelle