WordPress Forms
Now Reading
Allow Visitors to Submit Content to Your WordPress Site

Allow Visitors to Submit Content to Your WordPress Site

updated by M. K. SafiMay 2, 2012
by M. K. SafiJanuary 28, 2012

You can harness the power of user-generated content with your WordPress site. Display a front-end form that your visitors can use to submit articles, pictures, or any type of posts to your own site. The easiest and most dynamic way to display such a form is to use Gravity Forms plugin. (That’s why it’s the solution I’ll use in this tutorial. However, it’s not the only solution and it’s not free. There’s the free User Submitted Posts plugin and a demo of it here.)

The form that I’ll create in this tutorial will have fields for the title, body, featured image, categories, and tags of the post. Posts which are submitted through this form will be marked “Pending Review”. It’s up to you, however, if you want the posts to be saved as drafts or be immediately published.

The form will also ask for the visitor’s name, email and website.

Here’s how the final thing will look like and work:


Oops! We could not locate your form.

The submit button is intentionally disabled because this form is for demo purposes only. However, when a visitor submits an actual form, the submission will be stored in the database, and you can, optionally, have email notifications sent out.

So, let’s start building this form.

Getting Started

First, download and install Gravity Forms. Next, in WordPress admin, go to:

Forms → New Form

New form

Make the General Form Settings

You’ll wanna adjust the general form settings. You do that by clicking on “Form Settings” at the top.

Give your form a title and a description.

Then go to the “Advanced” tab and configure the form submit button, its label, and whether it’s a standard button or an image. And adjust the rest of the settings as you see fit. Every field in Gravity Forms has a little clickable question mark icon next to it that explains what the field does.

Initial form settings

Inserting Post Submission Fields

Next, you’ll wanna insert the fields that will receive post data. Gravity Forms groups these fields in the Post Fields box.

Post Fields

In the demo form, I used the title, featured image, body, category, and tags fields. Inserting them is just a matter of point and click.

Each field has its own particular properties that you’ll want to adjust. For example, the post title field allows you to select the default status and author of submitted posts.

Post title settings

In the category and tag fields, you can limit the categories and tags to which the visitor can submit.

User submission category

Paginating the Form

At this point, we’ve collected the essential data related to the post. Now we wanna create a second page in the form, where the user is supposed to enter their name, email address, and website URL. To do that, we click on Page Break in the Standard Fields box.

Page break

This will insert three new elements to our form builder: start paging, page break, and end paging. You can edit “start paging” to set the type of paging indicator (i.e. progress bar or steps), and set the titles for your pages.

Page break settings

You can also edit the text that appears on the “Next” and “Previous” buttons by editing the page break and end paging fields. You can even choose to use an image button.

Inserting Name, Email, and URL Fields

On the second page of the form, we’ll wanna insert fields to collect the submitter’s name, email, and URL. Again, Gravity Forms makes this so easy.

You’ll wanna go to the Advanced Fields box, and click on Name, Email, and Website. Make sure that these fields are inserted after the page break. These fields also have their own properties, edit them to your liking.

With that, the form is complete. You can now save it.

Displaying the Form to Visitors

Your form can appear any where you’d like, on a post, a page, or in the sidebar. To insert it in a post or a page, use shortcode for the form. Something that looks like this:

[gravityform id="4" name="Submit Cool Posts" ajax="true"]

You can find out the appropriate shortcode by going to the post editor and using the insert form button.

Form insertion

Alternatively, you could place the form in your sidebar by using the Form widget, which is another feature of Gravity Forms.

That’s all there is to it. As you can see, with WordPress and Gravity Forms, you can easily allow your visitors to submit articles, pictures, and anything you’d like to appear as posts. If you have questions or suggestions, let’s talk about them in the comments!

What's your reaction?
Wink It
Kill It
About The Author
Profile photo of M. K. Safi
M. K. Safi
  • June 4, 2014 at 9:01 am

    Currently it looks like BlogEngine is the best
    blogging platform out there right now. (from what I’ve read) Is that what
    you’re using on your blog?

  • October 2, 2012 at 7:30 pm

    i have same question as i had in the registration form tuto.
    how to make this post editable from front fir the owner of that post, in case there are several posters

  • elay
    February 14, 2012 at 7:46 pm

    Hi is it possible to also connect the uploaded Stuff to custom category.
    Let me explain:
    I have bought a theme from themeforest.
    In this theme Templete there is a Portfolio and this portfolio has her own Category wich is not listed in the standard Category overview of the standart Posts.
    So my question is can i also upload Works or a image with information to the Portfolio Template ?

    Hope it is understandable.

    thanks in advance

  • koen
    February 13, 2012 at 3:55 am

    This looks promising. I have three questions however:
    1. Is there an option to include a field with a datepicker and a timepicker?
    2. Are the fields validated upon submission (required fields, e-mail format etc.)
    3. Can I make some fields mandatory?


    • Profile photo of M. K. Safi
      February 13, 2012 at 2:16 pm

      Hi koen, I’ve added a date and time fields to the demo form. Take a look. But you should know that this is not tied to the post publish date in WordPress. You’ll have to manually adjust the publish date and time based on the info the user provides.

      Yes, the fields are validated and fields can be made mandatory.

      • koen
        February 13, 2012 at 2:43 pm

        I actually think of using this on several of my sites to enable unregistered users to post their own events. This would mean the following fields would be shown in the posts: Event name, description, date and time.
        In gravity forms I guess I can use the Post Field ‘Title’ for the event name and ‘Body’ for the description but is there a way I can include the date and time as custom field to the post? In other words can the datepicker, dropdown etc. be used to add custom post fields?
        Thanks again!

  • don
    February 7, 2012 at 12:39 am

    OK, sounds perfect! But I can’t find where does the submitted post goes.. to drafts? I’d like to review and edit them before actual publish. Can I designate default category it goes?

    Thank you very much!

    • Profile photo of M. K. Safi
      February 7, 2012 at 3:02 pm

      Hi don, As you can see in the 4th screenshot, you can set the status for the submitted post. It can be Draft, Pending Review, or Published.

      Yes, it’s possible to force posts into certain categories or tags and not give the user choices.

You must log in to post a comment