Currently known ways:
-
Use comments as input form. see the actual way described here. The comments can be altered to have more fields and contain a WYSIWYG editor for better user experience.
-
Use TDO Mini Forms plugin to create a user-generated-data form. the users will fill the form, which will create a new draft post to be published by the site admin.
-
Use a contact form plugin with wordpress email publishing mechanism. Set the contact form destination as the email set up as wordpress “feed” email.
-
Write your own form that publish posts. this is described nicely in this post. You create a page template that shows the publishing post, and uses the data to create a draft (or post) using “insert_post”.
-
Using gravity forms plugin. One of the plugin features is to “Allow users to automatically create a post”
-
Setting the default user role as contributer. Once set, you need to allow people to register & login to your site. every registered user can publish drafts to the site.