2009-02-03 8 views
1

J'essaie de limiter le contenu que les abonnés peuvent voir, mais rien de ce que je fais ne semble fonctionner. J'ai passé des heures à faire du chalutage sur le web et à travers le code wordpress, tout cela en vain. Est-ce que quelqu'un sait comment je serais capable de faire ça?Comment faire la distinction entre les rôles utilisateur dans wordpress?

Idéalement, la structure du code ressemblerait à ceci:

if(get_role() = 'subscriber'){ 
    redirect 
} 

Merci

Soit dit en passant, j'ai essayé get_role (rôle de $) et cela ne fonctionne pas pour moi.

Répondre

2

J'ai utilisé current_user_can pour cela. Il y a une liste des rôles et des capacités ici:

http://codex.wordpress.org/Roles_and_Capabilities#Capabilities:_5

Alors, puisque tout le monde au-dessus du niveau de « abonné » peut éditer les messages, une façon de répondre à l'exigence que vous avez décrit serait:

if (!current_user_can('edit_posts')){ 

//redirect, error, etc as you like 

} 
+0

Beau travail, bravo mec! – Drew

0

mise à jour: il y a une fonction current_user_can(capability) que vous pouvez utiliser pour savoir ce que l'utilisateur peut et ne peut pas faire. J'imagine que vous aurez besoin d'ajouter un autre rôle ou une capacité.

les opérations suivantes:

= affectation
comparaison ==

+0

remercie l'homme. j'oublie toujours ça. hélas ce n'est pas tout à fait la solution. – Drew

0

Wordpress ne fait pas des limitations d'accès au contenu très bien. Ce n'est tout simplement pas intégré dans le système. La plupart du travail sur les autorisations implique de contrôler qui peut créer et éditer, mais le principe de conception primordial est de permettre à tout le monde de voir. Cela a du sens pour une application de blog, mais cela peut être limitatif si vous avez des types d'utilisateurs nécessitant un accès conditionnel.

Vous pouvez ajouter un rôle d'abonné sans trop de problèmes, mais vous devrez alors ajouter des crochets à une grande partie du code de rendu pour rediriger ou masquer les messages de la boucle. Le moins de travail de dev consiste à vérifier le rôle de l'utilisateur dans la boucle et à cacher ce qu'il ne devrait pas voir. L'inconvénient à ceci est que vous pouvez finir par rendre près des pages vierges.