WordPress-Funktionen und -Funktionen Hinweisfunktionen

Dies ist ein vierteiliges Lernprogramm, das das Thema, Benutzer und Rollen von WordPress behandelt. Die Serie behandelt die Architektur und das Design von Benutzerrollen in WordPress. die wichtigsten Funktionen für die Interaktion mit Benutzern und das Verwalten von Rollen und Fähigkeiten hervorheben; und im letzten Tutorial werden wir ein Beispiel aus der Praxis erstellen, das die Nützlichkeit dieser API demonstriert.


Einführung

Im ersten Teil haben wir nur die Theorie über Benutzer, Rollen und Fähigkeiten behandelt. Dieser Teil konzentriert sich auf den Code und die Funktionen, die WordPress für die Interaktion mit diesem System bietet. Natürlich werden wir nicht alle Funktionen abdecken, die WordPress bietet, aber ich habe versucht, die wichtigsten und nützlichsten zu besprechen.

Da Änderungen und Aktualisierungen von WordPress häufig durchgeführt werden, sollten Sie immer zur Codex-Dokumentation zurückkehren und prüfen, ob sich etwas geändert hat. Ich werde für jede Funktion, die wir hier behandeln, einen Link zur Codex-Seite zur Verfügung stellen.


Benutzer verwalten

Benutzer in WordPress unterscheiden sich von Besuchern. Dies sind Personen, die ein Konto mit einem eindeutigen Benutzernamen auf Ihrer Website registriert haben. Sie können die Registrierung neuer Benutzer auf Ihrer Site im Bereich Einstellungen -> Allgemein aktivieren, indem Sie das Kontrollkästchen "Mitgliedschaft -> Jeder kann sich registrieren" aktivieren.

In diesem Abschnitt behandeln wir einige nützliche Funktionen für die Interaktion mit registrierten Benutzern in WordPress. Ihr neues WordPress-Setup sollte mindestens einen Benutzer haben: den, der die WordPress-Installation eingerichtet hat. In älteren Versionen war dies der "Admin"; Jetzt können Sie jedoch bei der Installation von WordPress den Benutzernamen auswählen.

  1. Benutzer erstellen, aktualisieren und löschen

    WordPress verfügt über eine visuelle Benutzeroberfläche zum Erstellen, Aktualisieren und Löschen von Benutzern. Sie sollten es meistens benutzen. Es gibt jedoch Fälle, in denen Sie dies beim Programmieren tun möchten: Zum Beispiel beim Importieren von Benutzern aus einem anderen Framework oder wenn Sie ein eigenes benutzerdefiniertes Registrierungsformular erstellen.

    WordPress verfügt über vier Funktionen, um diese Aktivitäten auszuführen:

    • wp_create_user
    • wp_insert_user
    • wp_update_user
    • wp_delete_user

    Anfangs kann es etwas verwirrend sein. Alle ersten drei Funktionen können neue Benutzer erstellen.wp_insert_user" und "wp_update_user"kann vorhandene Benutzer aktualisieren. Dafür gibt es jedoch einen Grund.

    Es gibt zwei Möglichkeiten, einen neuen Benutzer zu erstellen:

    1. Durch Weitergabe nur der minimalen Informationen, die zur Erstellung des Benutzers erforderlich sind (Benutzername, Kennwort und E-Mail-Adresse). In diesem Fall sollten Sie die wp_create_user Funktion.
    2. Durch Übergeben eines Arrays der Benutzerdaten. In diesem Fall sollten Sie die wp_insert_user Funktion. Dadurch haben Sie die Möglichkeit, alle Benutzerdaten vor dem Hinzufügen für Ihren Benutzer festzulegen.

    Um einen vorhandenen Benutzer zu aktualisieren, sollten Sie verwenden wp_update_user. Es ist möglich, dasselbe zu verwenden wp_insert_user; Diese Funktion hat jedoch kein Kennwort für das Benutzerkennwort und kann daher fehlschlagen. Daher ist es besser, die richtige Funktion für den richtigen Job zu verwenden.

    Im Folgenden werde ich für jede Funktion einen Beispielausschnitt der Verwendung beschreiben. Sie sollten jedoch auf den Codex Bezug nehmen, wenn Sie nach detaillierteren Dokumentationen suchen.

    Benutzung von wp_create_user

     add_action ('init', 'wpttuts_createuser'); function wpttuts_createuser () // Benutzerdaten $ user_name = 'new_user'; $ user_password = 'neues_benutzerpasswort'; $ user_email = '[email protected]'; // Erzeuge den Benutzer $ user_id = wp_create_user ($ user_name, $ user_password, $ user_email); // Überprüft, ob die Funktion ein WP-Fehlerobjekt zurückgegeben hat if (is_wp_error ($ user_id)) $ user_id-> get_error_message ();  else // Benutzer wurde erfolgreich erstellt

    Benutzung von wp_insert_user

     add_action ('init', 'wpttuts_insertuser'); function wpttuts_insertuser () // Bereite die Benutzerdaten vor $ user_data = array ('user_login' => 'new_user', 'user_password') => 'new_user_password "user_email" =>' [email protected] ',' role '=> 'administrator'); // Erzeuge den Benutzer $ user_id = wp_insert_user ($ user_data); // Überprüft, ob die Funktion ein WP-Fehlerobjekt zurückgegeben hat if (is_wp_error ($ user_id)) $ user_id-> get_error_message (); else  // Benutzer erfolgreich erstellt

    Benutzung von wp_update_user

     add_action ('init', 'wpttuts_updateuser'); function wpttuts_updateuser () // Bereite die Benutzerdaten vor $ user_data = array ('user_id' => 3, 'description' => 'Unser neu erstellter Benutzer'); // Aktualisiert die Benutzerbeschreibung $ user_id = wp_update_user ($ user_data); // Überprüft, ob die Funktion ein WP-Fehlerobjekt zurückgegeben hat if (is_wp_error ($ user_id)) $ user_id-> get_error_message ();  else // Benutzer erfolgreich aktualisiert

    Benutzung von wp_delete_user

     add_action ('init', 'wpttuts_deleteuser'); Funktion wpttuts_deleteuser () if (wp_delete_user (3, 1)) // Benutzer erfolgreich entfernt
  2. Liste der Benutzer abrufen

    WordPress bot zwei Funktionen zum Abrufen der Benutzerliste an, sodass Sie die Datenbank nicht abfragen müssen. Die erste Funktion "get_users_of_blog ()"gibt ein Array aller Benutzer des aktuellen Blogs zurück (oder Sie können eine Blog-ID übergeben, wenn Sie eine MultiSite-Installation ausführen). Die zweite Funktion"get_users ()"gibt eine Liste von Benutzern zurück, die auf den an die Funktion übergebenen Argumenten basieren. Dadurch müssen keine benutzerdefinierten SQL-Abfragen an die Datenbank ausgeführt werden.

    Beide Funktionen geben ein Array von Benutzerdatenobjekten zurück. (Ausser für get_users () Hier können Sie angeben, dass nur ein bestimmtes Feld zurückgegeben werden soll.) Das Benutzerobjekt wird im nächsten Abschnitt ausführlicher behandelt.

    Das "get_users_of_blog ()"Funktion ist jetzt veraltet, Sie sollten sie also nicht mehr verwenden und"get_users ()"Stattdessen. Das folgende ist ein Beispiel für die Verwendung von"get_users ()".

     add_action ('init', 'wpttuts_getusers'); Funktion wpttuts_getusers () // Abfragekriterien $ args = array ('orderby' => 'url', 'order' => 'ASC'); // Holen Sie sich das Benutzer-Array $ users = get_users ($ args); // Durchlaufen Sie die Benutzer und zeigen Sie ihre Startseite an ($ Benutzer als $ Benutzer) echo 'user_url. ""> ". $ user-> user_url. '';

    Das Funktionsargument akzeptiert weitere Optionen. Die vollständige Liste dieser Optionen finden Sie auf der Seite Codex.

    • blog_id Nur für Installationen mit mehreren Standorten nützlich. Der Standardwert ist die aktuelle Blog-ID.
    • Rolle Beschränken Sie die zurückgegebenen Benutzer auf die angegebene Rolle.
    • umfassen Ein Array von Benutzer-IDs, die in die zurückgegebene Abfrage aufgenommen werden sollen.
    • ausschließen Ein Array von Benutzer-IDs, die von der zurückgegebenen Abfrage ausgeschlossen werden sollen.
  3. Das WP_User Klasse

    Das WP_User Klasse erlaubt den Zugriff auf Eigenschaften, Fähigkeiten und Methoden für einen bestimmten Benutzer. Um eine neue Instanz der Klasse zu erstellen, benötigen Sie die Benutzer-ID oder den Benutzernamen. Wenn Sie sich für eine Installation mit mehreren Standorten befinden, benötigen Sie auch die Blog-ID.

    Sie können die Klasse für einen bestimmten Benutzer initiieren und den Klasseninhalt sichern. Dies zeigt nur die Eigenschaften an, ist aber dennoch nützlich, wenn Sie die Benutzerklasse lesen möchten.

     add_action ('init', 'wptuts_wpuserclass'); Funktion wptuts_wpuserclass () $ user = new WP_User (1); var_dump ($ user); 

    Das Folgende ist eine Zusammenfassung der Eigenschaften und Methoden des WP_User Klasse:

    WP_User Eigenschaften

    • Daten (Objekt mit den Benutzerdaten wie Benutzername, Passwort, URL…)
    • ICH WÜRDE (Ganze Zahl Die Benutzer-ID)
    • Kappen (Array)
    • Rollen (Array Dem Benutzer zugewiesene Rollen)
    • cap_key (String)
    • allcaps (Array Alle Fähigkeiten, die der Benutzer hat)
    • Filter (Null)

    WP_User Öffentliche Methoden

    • get_role_caps () Legt die Rollen- und Allcaps-Eigenschaften fest.
    • add_role () Fügen Sie dem Benutzer eine Rolle hinzu.
    • remove_role () Entfernen Sie eine Rolle aus dem Benutzer.
    • set_role () Legen Sie dem Benutzer eine Rolle fest. Dadurch werden zuvor zugewiesene Rollen entfernt.
    • add_cap () Fügen Sie dem Benutzer die Fähigkeit hinzu.
    • remove_cap () Fähigkeit vom Benutzer entfernen.
    • remove_all_caps () Entfernen Sie alle Funktionen des Benutzers.
    • has_cap () Überprüft, ob der Benutzer über eine Funktion oder einen Rollennamen verfügt.
  4. Benutzer-Metadaten

    Wie bereits im vorigen Artikel erwähnt, handelt es sich bei den Metadaten der Benutzer um Daten über den Benutzer, die im gespeichert werden wp_usermeta Tabelle. Es wird als Schlüssel- / Paarwerte gespeichert, und der Meta-Wert kann ein beliebiger Datentyp sein. Das Paar ist nicht unbedingt eindeutig. Sie können mehrere Paare mit demselben Schlüssel speichern.

    Hinzufügen von Benutzermetadaten

    Die Funktion add_user_meta () fügt neue Benutzer-Metadaten hinzu. Die Funktion gibt true zurück, wenn die Daten erfolgreich hinzugefügt wurden, und false, wenn sie fehlschlägt. Wie bereits erwähnt, können viele Meta-Werte mit demselben Schlüssel hinzugefügt werden. Wenn Sie Metaschlüssel eindeutig machen möchten, setzen Sie das vierte Argument auf true.

     add_action ('init', 'wptuts_addusermeta'); function wptuts_addusermeta () // Mehrere Meta-Werte mit demselben Meta-Schlüssel hinzufügen add_user_meta (1, 'bookmarks', 'http://site1.com', false); add_user_meta (1, 'bookmarks', 'http://site2.com', false); add_user_meta (1, 'bookmarks', 'http://site3.com', false); 

    Abrufen von Benutzer-Metadaten

    Die Funktion get_user_meta () gibt den Metawert basierend auf der Benutzer-ID und dem an ihn übergebenen Metaschlüssel zurück.

     add_action ('init', 'wptuts_getusermeta'); function wptuts_getusermeta () // Ruft die Benutzer-Lesezeichen ab $ bookmarks = get_user_meta (1, 'bookmarks', false); Echo '
      '; foreach ($ bookmarks als $ bookmark) echo '
    • '. $ Lesezeichen. '
    • '; Echo '
    ';

    Aktualisieren von Benutzer-Metadaten

    Die Funktion update_user_meta () aktualisiert einen einzelnen Metawert. Wenn für denselben Metaschlüssel mehrere Werte vorhanden sind und kein vorheriger Metawert angegeben wurde, werden alle vorherigen Metawerte durch den neuen Wert überschrieben.

     add_action ('init', 'wptuts_updateusermeta'); function wptuts_updateusermeta () // Aktualisiert ein Benutzer-Lesezeichen update_user_meta (1, 'bookmarks', 'https://site2.com', 'http://site2.com'); 

    Entfernen von Benutzermetadaten

    Die Funktion delete_user_data () Entfernt einen oder alle Metaschlüssel / -paare für einen bestimmten Metaschlüssel. Wenn Sie einen einzelnen Wert entfernen möchten, sollten Sie ihn im dritten Argument angeben.

     add_action ('init', 'wptuts_removeusermeta'); function wptuts_removeusermeta () // Aktualisiert ein Benutzer-Lesezeichen delete_user_meta (1, 'bookmarks', 'https://site2.com'); 

Verwalten von Rollen und Funktionen

  1. Rollen erstellen und entfernen

    WordPress-Rollen sind erweiterbar. Sie können Rollen hinzufügen und entfernen. Das Hinzufügen einer Rolle ist ziemlich einfach. Sie benötigen einen Rollen-Slug-Namen, einen Anzeigenamen für die Rolle. und die Fähigkeiten, die die Rolle hat.

     add_action ('init', 'wptuts_addrole'); Funktion wptuts_addrole () add_role ('uploader', 'uploader', array ('upload_files')); add_role ('link_manager', 'Link Manager', array ('manage_links')); 

    Wenn Sie eine Seite mit den Benutzereinstellungen aufrufen (Benutzer-> Wählen Sie einen Benutzer-> Bearbeiten), werden Sie feststellen, dass Ihre neu hinzugefügten Rollen verfügbar sind. Sie werden mit dem von Ihnen eingegebenen Anzeigenamen angezeigt.

    Es ist wichtig zu erwähnen, dass die Erstellung von Rollen nur einmal erfolgen muss. Also, wenn Sie an die "hängen"drin"Aktion wie im obigen Code. Sie erstellen die Rolle jedes Mal neu, wenn der Code ausgelöst wird. Dies ist keine gute Sache. In der Praxis möchten Sie sie nur einmal erstellen. Sie können sie dann an den Aktivierungshaken des Plugins anschließen. Stellen Sie sicher, dass Sie es entfernen, wenn das Plugin deaktiviert ist.

    Das Entfernen von Rollen ist auch ziemlich einfach. Sie brauchen nur den Rollen-Slug-Namen.

     add_action ('init', 'wptuts_removerole'); function wptuts_removerole () remove_role ('uploader'); remove_role ('link_manager'); 
  2. Funktionen zu Rollen hinzufügen

    Ähnlich wie Benutzer haben Rollen eine spezielle Klasse: WP_Role. Für das Initialisieren dieser Klasse sind jedoch sowohl der Rollenname als auch die Rollenfunktionen erforderlich. das ist nicht ganz so nützlich.

    WordPress bietet eine weitere Funktion get_role () Dies erfordert nur den Rollennamen und initialisiert die Klasse für Sie.

     add_action ('init', 'wptuts_getrole'); function wptuts_getrole () $ role = get_role ('editor'); var_dump ($ role); 

    Das zurückgegebene Objekt verfügt über zwei Eigenschaften und drei Methoden.

    WP_Role Eigenschaften

    • Fähigkeiten Ein Array mit den Funktionen der Rolle.
    • Name Der Rollenname.

    WP_Role Methoden

    • add_cap () Fügen Sie dem Rollenobjekt die Funktion hinzu
    • has_cap () Überprüfen Sie, ob die Rolle über die Funktion verfügt
    • remove_cap () Entfernen Sie die Fähigkeit aus der Rolle
  3. Auf Berechtigungen prüfen

    Rollen und Fähigkeiten sind vorhanden, sie tun nichts. Sie sollten sie in Ihrem Plugin oder Design durchsetzen, indem Sie sie überprüfen, bevor Sie Code ausführen. Sie sollten immer nach Funktionen statt nach Rollen suchen. Ein Benutzer mit der Rolle "Editor" kann nicht garantieren, dass er über die Standardfunktionen verfügt, die WordPress dieser Rolle zuweist, da sie von einem anderen Plugin oder dem Blogbesitzer selbst geändert werden können.

    WordPress verfügt über 3 Funktionen zum Überprüfen von Berechtigungen, die bis zu einem gewissen Grad austauschbar sind.

    • current_user_can ()
    • user_can ()
    • author_can ()

    current_user_can () prüft, ob der aktuelle Benutzer über die angegebene Funktion verfügt. Es akzeptiert auch einen Post oder ein Objekt, um nach Meta-Funktionen zu suchen.

    user_can () funktioniert auf dieselbe Weise, Sie können jedoch die Benutzer-ID angeben. Es wird jedoch nicht nach Meta-Funktionen gesucht. Es ist also ein bisschen mangelhaft, wenn Sie für einen anderen Benutzer als den aktuellen Benutzer nach einer Meta-Fähigkeit suchen möchten. Dafür können Sie das verwenden author_can () Funktion, die prüft, ob ein Beitragsautor eine bestimmte Aufgabe basierend auf einer Fähigkeit und Beitrags-ID ausführen kann.

     // prüft, ob der Postautor des ersten Posts den Post veröffentlichen kann, wenn (author_can (1, 'publish_posts')) publish_post_function (); // Post veröffentlichen else echo "Du hast nicht das Recht, den Post zu veröffentlichen"; 

Fazit

In diesem Teil habe ich versucht, so viele Funktionen wie möglich in WordPress abzudecken und auch zu erklären, wann Sie die einzelnen Funktionen verwenden sollten. Jetzt sollten Sie in der Lage sein, ein Plugin oder ein Design zu erstellen, das das Fähigkeitssystem verwendet. Im nächsten Teil werde ich Ihnen zeigen, wie Sie ein Plugin erstellen, das dieses System verwendet.