Zeigen Sie spezielle Backend-Inhalte für bestimmte Rollen an

Ich denke, ich bin ziemlich nah dran an dem, was ich brauche, aber brauche nur eine kleine Richtung. Ich versuche, ein Inhaltswidget im Backend für Benutzer einer bestimmten Rolle anzuzeigen. Im Moment teste ich es gerade mit einem Benutzer, der eine Rolle als subscriber .

Das funktioniert perfekt:

 <?php // Add a widget to the WordPress dashboard function wpc_dashboard_widget_function() { // Do whatever you want to render in here echo '

Special Offer One

Special Offer Text will go here!
'; } function wpc_add_dashboard_widgets() { wp_add_dashboard_widget('wp_dashboard_widget', 'Special Offers Just For Vendors', 'wpc_dashboard_widget_function'); } add_action('wp_dashboard_setup', 'wpc_add_dashboard_widgets' ); ?>

Aber das zeigt es allen Nutzern. Ich möchte nur eine bestimmte Rolle zeigen und habe versucht zu verwenden:

 if (!current_user_can('subscriber')): endif; 

zusammen damit, aber es mischt nur Dinge und das spezielle Widget zeigt sich für niemanden. Irgendwelche Ideen?

Solutions Collecting From Web of "Zeigen Sie spezielle Backend-Inhalte für bestimmte Rollen an"

Mögliche Gründe –

  1. current_user_can() -function benötigt eine Eingabe einer function, nicht der Benutzerrolle , obwohl sie irgendwann funktioniert, aber wir sollten die Benutzerrolle nicht als Eingabe für diese function verwenden.
  2. Sie übergeben das subscriber an die function, die eine möglichst geringe Rolle ist, die wir in WordPress haben können. Deshalb ist !current_user_can('subscriber') für alle verfügbar.

Sehen Sie sich die WordPress-Dokumentation zu Capabilities Vs Roles- Tabelle an. Verwenden Sie diese Tabelle, um zu bestimmen, welche function Sie verwenden können, um sie zu verbergen oder einer bestimmten Rolle zu zeigen. Um das Feld dem Editor anzuzeigen, können Sie die function moderate_comments .

 Eg - if ( current_user_can ('moderate_comments') ) { //To see this visible you should have at-least Editor privileges } 

Hinweis –

Ich empfehle die Verwendung der function wp_get_current_user() . Dies kann verwendet werden, um die Benutzerrolle zu übernehmen und bestimmte Inhalte anzuzeigen. Der Inhalt wird nur für diesen Benutzer verfügbar sein. Nicht einmal Benutzer mit höheren Rechten können ihn sehen.

  // Add a widget to the WordPress dashboard function wpc_dashboard_widget_function() { global $wp_roles; $current_user = wp_get_current_user(); $roles = $current_user->roles; $role = array_shift($roles); if($role == 'administrator') { // This is only for Admins echo '

Special Offer One

Special Offer Text will go here!
'; } } function wpc_add_dashboard_widgets() { wp_add_dashboard_widget('wp_dashboard_widget', 'Special Offers Just For Vendors', 'wpc_dashboard_widget_function'); } add_action('wp_dashboard_setup', 'wpc_add_dashboard_widgets' );