User roles determine editing and deleting posts by your site users. The main difference between author role and contributor role is

  • Authors -> Create/Edit/Delete posts + Publish
  • Contributors -> Create/Edit/Delete before publishing  + Submit for review (cannot Publish) + Cannot Edit/Delete Published posts

The main difference is contributors, once posts are published,  posts cannot be edited or deleted by contributors.  Often you want your website users to post articles to you in wordpress, and you want to approve them manually. You will also need give them provisions to edit or remove posts after publishing. Not allowing contributors to delete or edit posts sometimes force you to change their role as author. But the problem with author is the posts are published automatically and your site users could spam you. In that context, the contributor role is ideal option.

You can easily override permission contributor issue by just placing 2 lines in your functions.php in your theme.

$role = get_role( 'contributor' ); // gets the author role
$role->add_cap('delete_published_posts' );

 

Trust me, it will work like magic!