web-dev-qa-db-fra.com

Fonctionnalité du plug-in uniquement pour l'éditeur et l'administrateur

Je n'avais jamais écrit de plugin Wordpress auparavant, c'est donc ma première tentative.

Fondamentalement, le plugin est destiné aux blogs multi-auteurs où les auteurs de publication doivent soumettre leur publication pour révision. L'éditeur/administrateur doit entrer et approuver et publier/programmer le poste. Tout cela est bon et intégré à Wordpress.

Ce plugin ajoute la possibilité pour l'éditeur/administrateur de laisser un commentaire sur le contenu du message, pas de suggestions pour améliorer le message. Ceci est particulièrement utile lorsque l'éditeur planifie la publication du message à une date/heure ultérieure.

L'éditeur peut laisser son commentaire, puis lorsque le message est publié, le commentaire de l'éditeur est automatiquement publié avec lui.

La dernière chose que je ne peux pas comprendre, c'est comment rendre ce plug-in actif uniquement pour les rôles d'éditeur et d'administrateur. Je ne veux pas que l'auteur du message puisse laisser des commentaires avant sa publication.

Essentiellement, je ne veux pas demander au rédacteur du message, qui a déjà lu le message, de revenir plus tard pour laisser ses commentaires.

Modifier

Pastebin du code complet - http://Pastebin.com/yG9uqJ7q

2
Travis Pflanz

Merci à ericissocial de m'avoir envoyé dans la bonne direction.

J'ai décidé d'aller avec:

if(current_user_can( 'edit_others_posts' )) {
    //add meta box
}

De cette façon, tout rôle d'utilisateur personnalisé avec edit_others_posts peut utiliser la fonction.

0
Travis Pflanz

Vous pouvez vérifier le rôle de l'utilisateur lors du chargement de votre metabox.

//get user
$user_id = get_current_user_id();
$user = new WP_User($user_id);
//check user role
if($user->roles[0] == 'administrator' || $user->roles[0] == 'editor') {
     //add your metabox here
}

Ainsi, la metabox n'étant ajoutée à la publication pour les rédacteurs et les utilisateurs, vous voudrez probablement envelopper votre fonctionnalité de sauvegarde dans un état similaire afin qu'elle ne soit pas exécutée à chaque fois que la publication est enregistrée.

EDIT: Si vous envisagez de l'utiliser sur un autre site ou de le publier pour que les autres le sachent, nous vous recommandons également de configurer une page d'options pour votre plug-in afin que les rôles d'utilisateur pouvant utiliser ce plug-in puissent être sélectionnés dans une liste de rôles d'utilisateur actuels.

De cette façon, les rôles d'utilisateur personnalisés peuvent également être pris en compte.

2
Eric Allen