Ich war überrascht festzustellen, dass add_role () die Datenbank ändert und fehlschlägt, wenn die Rolle bereits vorhanden ist. Hier gibt es zwei Implikationen, eine ist schwerwiegender als die andere: 1) Wenn Sie sich in der Entwicklung befinden und Ihren add_role-Code aktualisieren, müssen Sie zuerst remove_role (). 2) Sobald Sie es richtig haben, sollten Sie diesen Code niemals ausführen müssen nochmal.
Normalerweise habe ich meine add_role () in einen wp_loaded-Aktions-Hook eingefügt. Und da ich gerade in der Entwicklung bin, habe ich auch eine remove_role () vor meiner add_role hinzugefügt, damit ich sicher sein kann, dass meine Liste der Großbuchstaben wirksam wird, wenn ich sie ändere.
Dies wird jetzt jedoch jedes Mal ausgeführt, wenn auf eine Seite des Blogs zugegriffen wird. Okay, ich könnte es in eine Nur-Administrator-Aktion einfügen, oder ich könnte eine Plug-In-Seite unter Benutzer oder Tools erstellen, auf der diese Rolle einmal erstellt werden kann. Ich hoffe, es gibt eine einfachere und elegantere Lösung.
Ich kann mir nicht vorstellen, dass es eine Art von Run_once-Aktion gibt.
Oder ist es die beste Vorgehensweise, einfach die Rolle hinzuzufügen und dann mehrmals add_cap () zu verwenden? Und selbst dann stelle ich mir vor, dass add_cap auf die Datenbank zugreift.
Ich denke nur an den besten Weg, um unnötigen Datenbankzugriff zu reduzieren. Was sind Ihre Best Practices?
remove_role()
Funktionenadd_role()
hat mir bereits geholfen.