How To: Allow Users to Post Content on Your WordPress Website
Allowing people to publish content on your WordPress powered website sounds difficult to many. But it is not that difficult as WordPress offers a built-in User Management System which can be further extended by using plugins to add security and editorial controls. In this post we will look at some of these scenarios with examples on how to safely allow users to add content on your website.
The goal is to achieve the following:
- Allowing users to register and post content on your website.
- Making it easier for users to login and signup.
- Extending user profiles and author pages.
- Making it easier for users to post content.
WordPress Built in User Management
The simplest way to allow users to post content is by asking them to register and then login to submit their content. To do that go to Settings > General and check the box that says “Anyone can register”, and then select “Contributor” from the “New User Default Role” dropdown menu.
A contributor can login to the site and submit their posts but they cannot publish them. This means that their posts will be saved as drafts until an Editor or an Administrator publishes them. If you want your users to be able to directly publish their content to the website then you need to choose Author as the New User Default Role on General Settings page. To learn more about user roles and capabilities in WordPress see this article on WordPress Codex.
Now that you have allowed users to Register, your WordPress theme may still not have a link to tell users where they can register. Go to Appearance > Widgets, now drag and drop the Meta widget to your sidebar. Meta widget will display Register, Login / logout and RSS links in that widget area. You can also put a custom link to the registration page in the theme’s navigation menu.
Extending User Management Using Plugins
There are many WordPress plugins that can help you gain better control over user management on your website. Some of these plugins are:
WP User Control
WP User Control allows you to add a widget to your website with login form, register tab and reset password tab. This makes it easier for users to quickly login on your website to make comments, post content or do other activities that only registered users can do. Users can signin without leaving a page, which makes this plugin very useful for highly interactive websites.
- Adds a widget to sidebar with Login, Register and Reset password tabs.
- Adds a Remember Me checkbox at the bottom of login form so that users don’t have to login each time they visit.
- Users can login without leaving the page they are looking at.
- This plugin also allows you to change the email address for WordPress Admin Emails, such as the ones users receive when they signup or reset password.
WordPress Custom Registration Forms
Custom Registration Forms by Simplr is a premium WordPress plugin that allows you to gather user information by adding new form fields during Registration. The goal of this plugin is to create different registration form for different user roles and collecting relevant information that you can later use in your themes, author profile pages, or anywhere else. There is a free version of this plugin available in WordPress plugin repository.
- Add Registration forms on a page using shortcode.
- Create your own Registration forms with additional fields.
- Display a Profile page for users.
- RECAPTCHA integration for security and spam protection.
WordPress Custom Registration Forms »
Allowing Users To Add a Profile Photo
This plugin allows your website’s registered users to upload a profile photo. This plugin is really simple to use. The user photo can be displayed anywhere using template tags.
- Allows users to upload their own profile photo.
- All photos can be moderated by an admin. The admin will be notified by email when a user photo needs approval.
- User photo as well as thumbnail can be displayed on custom profile pages or author metaboxes in your theme.
Allowing Users to Post Content from Anywhere on your Site
So far we have enabled user registration, learned how to extend user profiles, now it is time to learn how to make it easier and simpler for users to post content on your website. The obvious solution is to let the users post content from wp-admin area. Another option is to allow users to post content directly from the front end of your website. I think this is much better approach, because users of your site are not the admins and hence there is not much for them to do in wp-admin area except for submitting posts. So why not bring the post editor to them right on the front end?
Quick Post Widget
Quick Post widget allows website users to quickly post content on your website from anywhere. This might scare you a little but don’t worry the widget only allows registered users to send posts and those posts are handled according to their WordPress User roles. So if they are a contributor their posts will still need to be approved.
- Allows quick posting from anywhere.
- Quick post editor can be added into widgetized area in your WordPress theme.
- Only registered users can post by default but you can allow guest posts from non-registered users as well.
- An email is sent to admin whenever a new post is made.
- The widget is highly customizable and you can control almost every aspect of posting that you can think of. Style, Permissions, Defaults, etc. all options can be configured right from the widget.
Quick Post Widget »
WP User Frontend
This is an awesome free plugin that allows users to submit their posts from the front end without visiting the admin area. But that’s not the only great thing about this plugin. It can actually be used to create powerful websites that accept user submissions. It also allows you to accept payments for these posts via paypal. It is highly configurable and quite simple to use. The plugin page on WordPress repository said that it had 3 “Broken” votes but it actually worked really well when I tested it. So please give it a try and vote it so that others can use it as well.
- Allows users to post content from the frontend of your website.
- The plugin needs you to create pages for New Post, Edit, and Profile sections. You need to add simple shortcodes to these pages and add these pages to your Menu. (See Screenshot above).
- It allows you to offer subscription packages and sell your website space to user submitted content.
- Highly configurable, nothing gets posted unless you configure it otherwise.
- Add custom fields and taxonomies for additional control over user posts.
There are many more interesting and innovative ways to publish collaborative or crowd sourced content on a website. There are some awesome themes that allow collaborative publishing like P2 Theme by automattic and WooTheme’s Teamster. There are more plugins which can empower a site’s users to do other things. In the coming posts we will be looking into more ways to open WordPress websites to visitors and allowing them to do things other than just reading. If you have some tips, ideas, themes or plugins that you would like to share please comment below and I will look into them.