User generated content in WordPress membership sites

How do you create a facility for user generated content that only members can create? That was the question that came to me this past week from a reader of the blog. It likely came from the post I wrote about using a form plugin to allow my son to create posts without logging into WordPress.

Or maybe the news this week that WPForms supported user-generated content from their plugin spawned the question.

I'm guessing it also came from the fact that this past week I highlighted the top membership plugins, reminding them that I look at a lot of membership plugins every year.

Whatever the reason, I thought I would answer the question not just for them, but for everyone.

First – why support this kind of feature?

The main reason for supporting user generated content from within a membership site is to support the kinds of membership sites that are specialized. Not every membership site qualifies.

But consider that you run a membership site that focuses on high end and lightweight bicycles. In that kind of site, you might want users to rate different products, submit store locations that repair high end bikes, or tips on buying one.

What you realize, when you run a specialty membership site, is that you're not the only one with good information. Your members are experts too. And you want to create an environment where they can share that information without ruining your site.

Some sites do that via a message board, but I find those hard to navigate and filled with frustration. So if there's a way to let these people create posts in a specific category, or create a custom post type, without having to become a WordPress person – then that sounds perfect.

Make sense?

Second – what do you need to support this feature?

The good news is you only really need two plugins to help you build out this user-generated content feature. Pick one from each section below.

Membership Plugin MemberPress
SkyVerge Memberships (w/WooCommerce)
Restrict Content Pro
Form Plugin Ninja Forms
WP Forms
Gravity Forms
Formidable Pro

The thing to note about these form plugins is that some of them offer the user-generated content / post-creation feature as a core part of their plugin and others make it available as an add-on. So when you go to their sites to review their products, make sure you're buying the right version that comes with it, or the right add-on that provides the feature.

Third – how do you set it up?

There aren't that many steps to doing it. I won't go into the details of user-generated content, since I recently covered that with Ninja Forms and the other plugins work fairly similarly. But there's a few other things you'll want to do to make this all come together.

Step One: Create a form that will create posts

Once you've activated the form plugin that you've chosen, and any add-ons that you need, you'll want to create a form. This is pretty easy but remember to make sure that you use the right kinds of fields. Some plugins are fine if you use single line text fields for things that will later become a post title. Others have a “post title” field that you can use.

You'll likely need a text field for the title, a text area field for the body of the post you're creating, and then you'll have to decide if you need any other fields.

Step Two: Make sure those posts are in the same category or a custom post type

Once you have the form done, you'll go to the admin part of that form (or the settings area of the plugin) to decide what happens after a user submits it. What you have to decide is whether this is a new custom post type or simply needs to be a post assigned to a specific category.

The rule of thumb I use on creating new custom post types is whether the data you're collecting is more than just a title and body content. If you're collecting tons of other data, then a custom post type (CPT) can help you manage that. If it's a review, testimonial, or story—where title and content is really all that's there—then I just use a specific category to group my posts.

Step Three: Put the form on a page that is protected by the membership plugin

Each form plugin has a simple shortcode that lets you embed it on a page. What's important now is that you put it on a page that has restrictions so that only members can see it. After all, if the non-member can't get to the page, then they can't get to the form and fill it out.

This ensures that only your members are creating content.

Step Four: Create a place to display all the newly created posts

The last step in the process is to make sure that you have a way to display the new user-generated content that's just been created by your members. If you're using a page builder like Beaver Builder, then you can create any row or column that will show off a list of posts and then use their blog post / archive module to display them—limiting the display by category.

If you're using Genesis, and use the Genesis Featured Posts widget, or the Layout Extras plugin, then you can pick the category that way as well.


As you can see, the concept sounds harder than it really is. These four steps, along with two key plugins, and you're set!

If you try this and get stuck, or if you've found a great use for this approach in your membership site, come back and let me know below…