web-dev-qa-db-fra.com

Statut en attente par défaut pour un rôle spécifique

Je voudrais empêcher les utilisateurs d'un rôle spécifique de publier directement leurs articles. Seuls les administrateurs doivent pouvoir les approuver. Le seul choix qu’ils pourraient faire est de mettre leurs articles en attente ou en projet. Tous les autres rôles peuvent être publiés s'ils le souhaitent. Est-il possible de le faire sans aucun plugin et sans avoir à creuser trop profondément dans le code?

Je vous remercie

1
Bachir Messaouri

Le code suivant peut aller dans le fichier functions.php de votre thème. Cependant, ce type d'opération ne devrait pas vraiment être lié à un thème. Changer de thème permettrait aux utilisateurs ayant votre rôle spécifique de publier à nouveau. Par conséquent, il suffit de mettre le code dans un plugin simple.

<?php
/**
 * Plugin Name: My specific roles and capabilities
 * Plugin URI:  http://wordpress.stackexchange.com/questions/71841/pending-status-by-default-for-a-specific-role/71843
 */

$role = get_role('specific-role'); // Pick your role

if ( ! empty($role))
{
    $role->remove_cap('publish_posts');
}

Voir codex: get_role() et publish_posts .

1
Geert