Erweiterte benutzerdefinierte Felder / Benutzerrolleneditor – wie kann man ACF für bestimmte Benutzer ausblenden?

Ich verwende den Benutzerrollen-Editor, um benutzerdefinierte Benutzerrollen anzugeben. Ich benutze auch Advanced Custom Fields Plugin.

Ich möchte in der Lage sein, erweiterte benutzerdefinierte Felder auszublenden, damit sie für bestimmte Benutzer nicht angezeigt werden. Im Benutzerrollen-Editor können Sie dies jedoch nur deaktivieren, indem Sie das Kontrollkästchen “Optionen verwalten” deaktivieren. Das Problem dabei ist, dass andere Plugins nicht mehr angezeigt werden, die ich eigentlich für diese Benutzer sehen möchte.

Gibt es ein bisschen manuellen Code, den ich in meine functions.php einfügen kann, der nur erweiterte benutzerdefinierte Felder für bestimmte Benutzerrollen entfernt? Nur dieses Plugin.

Solutions Collecting From Web of "Erweiterte benutzerdefinierte Felder / Benutzerrolleneditor – wie kann man ACF für bestimmte Benutzer ausblenden?"

Die Aktion admin_menu wird das ACF-Menü ausblenden, in diesem Beispiel für Nicht-Admins.

Und admin_head blockiert den Zugriff, wenn auf die URL direkt zugegriffen wird.
ZB: http://example.com/wp-admin/edit.php?post_type=acf und http://example.com/wp-admin/edit.php?post_type=acf&page=acf-settings

 add_action( 'admin_menu', 'wpse_59032_remove_acf_menu', 9999 ); add_action( 'admin_head-edit.php', 'wpse_59032_block_acf_screens' ); add_action( 'admin_head-custom-fields_page_acf-settings', 'wpse_59032_block_acf_screens' ); function wpse_59032_remove_acf_menu() { /* if not our allowed users, hide menu */ if ( !current_user_can('delete_plugins') ) { remove_menu_page('edit.php?post_type=acf'); } } function wpse_59032_block_acf_screens() { global $current_screen; /* not our screen, do nothing */ if( 'edit-acf' != $current_screen->id && 'custom-fields_page_acf-settings' != $current_screen->id ) return; /* if not our allowed users, block access */ if ( !current_user_can('delete_plugins') ) { wp_die('message'); } }