it-swarm.com.de

was bedeutet das Feld wp_capabilities in der Tabelle wp_usermeta?

Ich bin neu in WordPress, in Tabelle wp_usermeta stelle ich fest, dass wir eine Zeile haben

meta_key                meta_value
wp_capabilities       a:1:{s:13:"administrator";b:1;}

Erstens, was bedeutet meta_value a:1:{s:13:"administrator";b:1;}, wo kann ich die genaue Erklärung für dieses Feld finden? Oder ich möchte alles über die roleuserCapabilities wissen, wo kann ich diese Informationen bekommen.

Zweitens, wie kann ich neue Rollen über wordpress's API by code erstellen?

Danke im Voraus.

6
diligent

Die wp_capabilities speichert den Wert als serilized Array, Sie können es in Ihrem PHP oder für dieses Beispiel hier versuchen: http://blog.tanist.co.uk/files/unserialize/ .

Der Code:

a:1:{s:13:"administrator";b:1;}

Ist:

Array
(
   [administrator] => 1
)

Dies bedeutet, dass der Benutzer ein Administrator ist.

Sie können der Datenbank neue Rollen hinzufügen, indem Sie die Funktion add_role ausführen und nur einmal ausführen!

8

Neben der Antwort von @ Krysiek sollten Sie wissen, dass die in den Metatabellen gespeicherten Daten, einschließlich der Benutzermetadaten, häufig serialisiert werden. Wenn Sie wissen möchten, was die Daten tatsächlich darstellen, können Sie die PHP -Funktion unserialize verwenden, um den Wert zu bestimmen. Wenn Sie beispielsweise den Wert a:1:{s:13:"administrator";b:1;} durch unserialisieren (und dann var_dump - die Ergebnisse) ausführen, erhalten Sie Folgendes:

array(1) {
    ["administrator"]=>
    bool(true)
}

Sie finden die gleichen Arten von Einträgen sowohl in der Tabelle options als auch in der Tabelle post_meta.

Sie sollten jedoch vermeiden, direkt in diese Tabellen zu schreiben. Es gibt WordPress-Funktionen, mit denen Sie Daten über Benutzer speichern und darauf zugreifen können. Um beispielsweise Daten aus der Benutzer-Metatabelle zu lesen, sollten Sie get_user_meta verwenden, und um zu schreiben, sollten Sie die WordPress-Funktion update_user_meta verwenden. Ähnliche Funktionen gibt es für die Tabellen post_meta und options.

4
cale_b

meta_value ist eine Spalte, in der der Wert des Metafelds gespeichert wird. Jedes meta_field enthält Schlüssel und Wert.

Ich denke, dieser Codex-Artikel über Rollen und Fähigkeiten sollte Ihnen helfen: http://codex.wordpress.org/Roles_and_Capabilities

Um benutzerdefinierte Rollen hinzuzufügen, sollten Sie die Funktion add_role verwenden ( http://codex.wordpress.org/Function_Reference/add_role ).

Und ein Beispiel für die Verwendung von Codex:

$result = add_role('basic_contributor', 'Basic Contributor', array(
    'read' => true, // True allows that capability
    'edit_posts' => true,
    'delete_posts' => false, // Use false to explicitly deny
));
if (null !== $result) {
    echo 'Yay!  New role created!';
} else {
    echo 'Oh... the basic_contributor role already exists.';
}
1

Der Schlüssel "wp_capabilities" in der Tabelle wp_usermeta gibt die serialisierte Darstellung eines Arrays an, das die Rollen eines Benutzers und alle Funktionen angibt, die diesem Benutzer mit $user->add_cap('my_capability'); hinzugefügt wurden. Danke spaul !

Das WordPress-Team nannte das Feld [Präfix] _Capabilities, bevor es feststellte, dass "Capabilities" tatsächlich Dinge sind, die für Benutzer, die eine bestimmte Rolle ausfüllen, zusammengefasst wurden. Wenn Sie den Wert des Schlüssels von [prefix] _capabilities in [prefix] _roles ändern, würde dies zu viele Plugins von Drittanbietern stören und ein umfangreiches Refactoring in WordPress selbst erforderlich machen.

Aus diesem Grund kann man mit Sicherheit sagen, dass der usermeta-Schlüssel wp_capabilities Benutzerrollen enthält und den Namen wp_roles trägt, wenn es nicht bereits so viele nützliche Softwareteile gibt, die erwarten, dass er den alten Namen verwendet.

Da diese Tatsache für neue WordPress-Enthusiasten so nützlich ist, empfehle ich jedem, der etwas über WordPress-Rollen (oder -Funktionen) zu sagen hat, die Tatsache, dass Benutzerrollen in einem Array aufgelistet sind, das in der Usermeta-Tabelle unter serialisiert ist, von vornherein den [Präfix] _Capabilities-Schlüssel.

1
Dave Scotese

In der Tabelle wp_usermeta können wir die zusätzlichen Informationen zu einem Benutzer speichern, während wir einen neuen Benutzer erstellen oder ein Profil eines vorhandenen Benutzers aktualisieren.

In der Tabelle wp_usermeta gibt es einen Spaltennamen meta_key, in dem wir den Wert speichern können, mit dem wir zum Beispiel den Wert dieses Feldes get oder update speichern können

Eine Rolle ist wie eine Zugriffsrichtlinie, die einem Benutzer erteilt wird, dass er nur so viel Zugriff auf die Website hat. Sie können eine Rolle hinzufügen, entfernen.

Funktionen sind wie das Hinzufügen von Funktionen oder das Einschränken einer Rolle. Zum Beispiel gibt es 2 Rollen 'Goldrolle', 'Platinrolle'. Wir beschränken 'Gold-Rolle', die er nur hinzufügen, aber nicht veröffentlichen kann, aber in 'Platin-Rolle' fügen wir eine Funktion hinzu, mit der er einen Beitrag veröffentlichen kann. Wir können auch Funktionen hinzufügen oder entfernen, die sich auf eine Rolle beziehen. Sie können auch Einschränkungen für Metaboxen von Posts hinzufügen.

Weitere Informationen finden Sie unter Rolle und Funktionen

Sie können eine Rolle hinzufügen und ihre Funktionen über wordpress API festlegen oder Sie können Plugins verwenden, um dies zu tun. Meiner Meinung nach ist Advanced Access Manager das beste Plugin für die Verwaltung von Rollen und Funktionen.

0
ksr89