Zunächst einmal bin ich ein WordPress-Lerner. Tut mir leid, wenn mein Code dumm aussieht!
Ich habe ein benutzerdefiniertes Design mit einer benutzerdefinierten Benutzerrolle erstellt. Ich entwickle kein Plugin.
In meiner Datei fucntions.php habe ich den folgenden Code geschrieben, um eine Benutzerrolle zu erstellen. Benutzer, denen diese Rolle zugewiesen ist, sollen sich beim Administrator anmelden, aber nur auf ihre Profilseiten zugreifen können.
add_action('init', 'yrc_cst_register_role_customer_service_rep');
/**
* Register new user role
*/
function yrc_cst_register_role_customer_service_rep() {
$wp_roles = new WP_Roles();
$wp_roles->remove_role('subscriber');
$wp_roles->remove_role('editor');
$wp_roles->remove_role('contributor');
$wp_roles->remove_role('author');
$service_rep_caps = array(
'read' => false,
'create_posts' => false,
'edit_posts' => false,
'edit_others_posts' => false,
'publish_posts' => false,
'manage_categories' => false,
'manage_options' => false,
);
add_role('customer_service', __('Customer Service'), $service_rep_caps);
}
Ich habe alle Rollen außer Administrator entfernt, da für dieses Portal keine andere Rolle erforderlich ist. Der Administrator erstellt nur Benutzer mit Kundendienst Rolle.
Ich habe kein Drittanbieter-Plugin im System installiert.
Benutzer mit der benutzerdefinierten Rolle können sich über eine benutzerdefinierte Anmeldeseite beim System anmelden, die einwandfrei funktioniert. Aber immer wenn sie versuchen, auf ihre Profilseite zuzugreifen, kommt die folgende Fehlermeldung:
Entschuldigung, Sie sind nicht berechtigt, auf diese Seite zuzugreifen.
Gibt es sowas 'edit_profile' => true
?
Ich muss etwas falsch machen, aber mein begrenztes Wissen reicht nicht aus, um das herauszufinden. Jeder Vorschlag wäre sehr willkommen.
Ich denke, er braucht ‘lesen’ => wahr
– Ständer
16. November 2017 um 7:17 Uhr
aber andererseits – ein Abonnent darf standardmäßig nur auf seine Profilseite zugreifen, richtig?
– Ständer
16. November 2017 um 7:18 Uhr
yeah – die Rolle sollte nur ‘read’ haben
– Ständer
16. November 2017 um 7:20 Uhr
In diesem Fall muss ich hinzufügen
'capabilities' => 'subscriber'
? Wechseln zu'read' => true
macht keinen unterschied. Was ist auch für eine benutzerdefinierte Rolle der richtige Weg, um die Funktion so zu definieren, dass er nur auf seine Profilseite zugreifen kann?– Subrata Sarkar
16. November 2017 um 7:20 Uhr
Schau dir das an : codex.wordpress.org/Roles_and_Capabilities#Subscriber
– Ständer
16. November 2017 um 7:22 Uhr