Geschützte Metafelder

Ich fuchse mich mal wieder durch das WordPress System und bin heute auf eine interessante Funktion gestoßen: is_protected_meta(). Was macht diese Funktion und wozu ist sie gut?

Eigentlich ist es ganz einfach. Beginnt ein benutzerdefiniertes Feld mit einem Unterstrich, so gilt dieses Feld als “protected”, also geschützt. Dies bedeutet beispielsweise, dass ein solches benutzerdefiniertes Feld nicht durch den Template Tag the_meta() dargestellt würde und folglich nicht der Öffentlichkeit zugänglich gemacht werden soll. Darüber hinaus führt dies dazu, dass eine Abfrage, ob der aktuelle Nutzer das Feld aktualisieren kann, negativ beantwortet wird:


Dies kann man allerdings selbst ändern. Zum einen – falls man das benutzerdefinierte Feld zunächst mit register_meta() registriert – kann man als letzten Parameter eine Callback-Funktion übergeben, in welcher man selbst bestimmen kann, unter welchen Bedingungen ein Benutzer das Feld erstellen, aktualisieren oder löschen kann. Der zweite Weg geht über den Filter 'is_protected_meta', welcher neben dem zu filternden Boolean den Meta-Schlüssel sowie den Meta-Typen, also beispielsweise 'post' oder 'user' übergibt.

Geschützte benutzerdefinierte Felder können somit nicht über das WordPress Dashboard angelegt, editiert oder gelöscht werden. Sie tauchen auch nicht in der Metabox “Benutzerdefinierte Felder” auf. Dabei spielt es keine Rolle, welche Fähigkeiten der eingeloggte Benutzer besitzt, diese Felder sind nur von Plugins und Themes über Funktionen wie update_post_meta() und get_post_meta() erreichbar.

The following two tabs change content below.
Seine erste Webseite hat David Remer 1998 in HTML verfasst. Wenig später war er fasziniert von DHTML und JavaScript. Heute konzentriert sich vor allem auf das Entwickeln von WordPress Themes und Plugins für Inpsyde. Außerdem hat er das Buch "WordPress für Entwickler" verfasst.

Latest posts by David Remer (see all)