it-swarm.com.de

Warum schlägt die Überprüfung, ob der Benutzer zum Bearbeiten eines Posts berechtigt ist, für alle außer Superadministratoren fehl?

Ich versuche festzustellen, ob ein Teil des Inhalts von einem Benutzer bearbeitet werden kann. Ich möchte, dass alle Rollen ab Mitwirkender durch einen einzigen Scheck autorisiert werden. Hier ist mein Code:

    if( empty( $post_id ) || !current_user_can('edit_post', $post_id) ) { return; }

Leider sind die einzigen Benutzer, die die return nicht erhalten, Superadministratoren. Irgendeine Idee warum?

2
editor

Der korrekte Funktionsname lautet edit_posts. Die korrekte Verwendung von current_user_can sieht also folgendermaßen aus:

if( empty( $post_id ) || !current_user_can( 'edit_posts' ) ) { return; }

UPDATE: Ich habe die falsche Aussage entfernt, aber wie der Fragesteller erwähnte, möchte er zulassen, dass alle Rollen von Mitwirkenden und höher für diese bestimmte Prüfung autorisiert werden Ich denke, nur nach edit_posts Caps zu suchen ist genug. Entschuldigung für die falsche Aussage.

0