Binden Sie die benutzerdefinierte Rolle an die Admin-Seite

Ich habe eine Admin-Seite erstellt, die einige Datensätze zeigt, auf die von WP-Admin über www.xyz.com/wp-admin/admin.php?page=show-records-handle . Wie kann ich eine neue Benutzerrolle definieren, die an diese Seite gebunden ist?

Benutzer mit dieser Rolle könnten die Seite sehen, ansonsten wird eine Fehlermeldung angezeigt.

Solutions Collecting From Web of "Binden Sie die benutzerdefinierte Rolle an die Admin-Seite"

Also für Ihre Informationen (basierend auf add_menu_page) ich vorschlagen, dass Sie den Codex von add_menu_page in WordPress http://codex.wordpress.org/Function_Reference/add_menu_page überprüfen, wenn Sie in den Parameter von add_menu_page dritten Blick ist für $capability nur ändern Unter code manage_options zu manage_wpse_173073 (oder einem beliebigen anderen Namen) und diese function einfach der benutzerdefinierten Rolle zuweisen.

 add_action( 'admin_menu', 'register_my_custom_menu_page' ); function register_my_custom_menu_page(){ add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'custompage', 'my_custom_menu_page', plugins_url( 'myplugin/images/icon.png' ), 6 ); } function my_custom_menu_page(){ echo "Admin Page Test"; } 

So ändere ich die add_menu_page zu benutzerdefinierten Fähigkeit (manage_wpse_173073)

  add_menu_page( 'custom menu title', 'custom menu', 'manage_wpse_173073', 'custompage', 'my_custom_menu_page', plugins_url( 'myplugin/images/icon.png' ), 6 ); 

Sobald ich diese Fähigkeiten geändert habe, müssen wir diese Fähigkeiten einer benutzerdefinierten Rolle oder einer ausgewählten Rolle zuweisen. http://codex.wordpress.org/Function_Reference/add_cap

 function add_menu_caps() { // gets the custom role $role = get_role( 'your custom role' ); $role->add_cap( 'manage_wpse_173073' ); } add_action( 'admin_init', 'add_menu_caps'); 

Der obige Code wurde noch nicht getestet, aber ich hoffe, es sollte in meinem Fall funktionieren, ich wurde das gleiche Verhalten über einen Monat versucht 🙂

EDITED: Erstellen Sie für Ihren Fall eine neue benutzerdefinierte Rolle und weisen Sie dann die oben genannten functionen zu

  function add_roles_on_init() { add_role( 'custom_role', 'Custom Subscriber', array( 'read' => true, 'level_0' => true,'manage_wpse_173073'=> true ) ); } add_action('init', 'add_roles_on_init' ); 

Stellen Sie sicher, dass Sie sich selbst codieren, wenn Sie sich auf Ihrer Website registrieren, und weisen Sie diesem Benutzer dann Ihre benutzerdefinierte Rolle zu. Das ist alles. Wenn dieser Benutzer das Backend besucht, kann er das Menü sehen, was auch immer angezeigt werden soll.

Hoffe es kann helfen 🙂

Vielen Dank.