web-dev-qa-db-fra.com

Autoriser les contributeurs à créer une page (mais pas à publier)

Les contributeurs peuvent créer des brouillons mais ne peuvent pas être publiés. Je voudrais ajouter le même concept d'autorisation, mais à Pages. Autrement dit, puis-je autoriser un contributeur à créer un brouillon de page uniquement pour qu'un éditeur/administrateur l'approuve ou le refuse ultérieurement?

De cette question , je vois que je peux me connecter à l’action new_role_edit_posts. Existe-t-il un équivalent new_role_edit_pages?

Comment vous y prendriez-vous?

1
Rick

Comment vous y prendriez-vous?

Je vois que c’est une vieille question et que vous avez trouvé une solution avec un plugin existant. Cependant, puisqu'il s'agit d'un développement StackExchange, il est probablement préférable de disposer d'une réponse expliquant comment atteindre les objectifs énoncés sans recourir à un plug-in tiers.

Réponse écrite

WordPress stocke des capacités dans la base de données. Par conséquent, nous voulons un plugin qui ajoutera la capacité edit_pages au rôle de contributeur lors de l’activation du plugin. Pour être complet, le plugin devrait supprimer la capacité lors de la désactivation.

Réponse codée

/**
 * Plugin Name: WPSE 230940
 */

//* Add activation hook
register_activation_hook( __FILE__ ,  'wpse_230940_activation' );    
function wpse_230940_activation() {
  //* Add edit_pages capability to contributors
  $contributor = get_role( 'contributor' );
  $contributor->add_cap( 'edit_pages' );
}

//* Add deactivation hook
register_deactivation_hook( __FILE__ , 'wpse_230940_deactivation' );
function wpse_230940_deactivation() {
  //* Remove edit_pages capability from contributors
  $contributor = get_role( 'contributor' );
  $contributor->remove_cap( 'edit_pages' );
}
2
Nathan Johnson