The frontend submission form is where your directory either works or does not. A form that is too long loses submitters halfway through. A form with the wrong fields produces listings that are incomplete or inconsistent. A form with no spam controls floods your moderation queue with junk.
Listora’s submission wizard ships with defaults that work for most directories - but the decisions you make during initial configuration determine the quality of submissions from day one. This post walks through each setting with the reasoning behind it.
What the frontend wizard does
The frontend submission wizard is the form your listing submitters use. It is separate from the admin backend - it lives on a public page on your site and is accessible to anyone you want to allow to submit.
What it handles out of the box:
- Multi-step form layout with progress indicator
- Conditional fields based on listing type (restaurants get different fields than events)
- Draft auto-save (submitters can return to a half-finished form)
- Email verification for guest submitters before the listing enters your queue
- Image upload with client-side size validation
- Map picker for the listing’s location
- The 6-layer anti-spam stack (honeypot, rate limits, reCAPTCHA/Turnstile, Akismet, keyword blacklist, URL density cap)
Step 1 - Create the submission page
- In WordPress admin, go to Pages - Add New.
- Give it a title like “Submit a Listing” or “Add Your Business.”
- In the page body, add the Listora submission form shortcode or block. From admin - Listora - Shortcodes, copy the submission form shortcode for your listing type.
- Publish the page.
- In Listora - Settings - Submission, set this page as the Submission Page URL.
Now the wizard is live. Submitters land on this page and work through the form steps.
Step 2 - Choose which fields to show
From Listora - Listing Types, open the listing type you are configuring (or create one if you have not yet - City Guide, Restaurant, Job Board, etc. are available as presets).
The field configuration panel has two sections:
Required fields - the minimum a listing needs to be published. Typically: name, category, location, and one contact method (website, phone, or email). Keep required fields to the minimum. Every additional required field is a reason a submitter abandons the form.
Optional fields - shown to submitters but not blocking publication if empty. Use for: hours, social profiles, description, amenities, price band. These enrich the listing but should not block basic submissions.
Admin-only fields - internal notes, review status, quality scores. Never shown to submitters.
A practical minimum for most directories:
| Field | Required? | Notes |
|---|---|---|
| Listing name | Yes | |
| Category | Yes | Drives filtering |
| Address | Yes | Enables geo search |
| Phone or website | Yes (one of either) | Contact signal |
| Description | No | Encourage but do not require |
| Images | No | Quality goes up when optional, not required |
| Hours | No | Add as optional for service directories |
Resist the urge to add more required fields to “ensure quality.” Optional fields with good copy (“Add your hours to get the Open Now badge”) produce better data than required fields that force submitters to enter placeholder text.
Step 3 - Configure email verification for guests
Guest submissions (from visitors without a WordPress account) should always require email verification before the listing reaches your moderation queue. Without it, you will get spam listings submitted with throwaway addresses.
From Listora - Settings - Submission:
- Set Allow guest submissions to Yes.
- Set Require email verification to Yes.
- Customize the verification email subject and body. The default is functional; if your brand voice is specific, update it.
The flow for a guest submitter:
- Fills out the form.
- Hits Submit.
- Gets a verification email.
- Clicks the verification link.
- Listing enters your moderation queue.
Listings from unverified emails never reach your queue. This alone eliminates the majority of bot-submitted listings.
Step 4 - Enable draft auto-save
Draft auto-save is on by default and worth keeping on. It saves the submitter’s progress as they fill out the form, so a browser close or accidental navigation does not lose their work.
From the submitter’s perspective: if they close the tab and return to the submission page (with the same browser session or the same email address), the form pre-populates with what they previously entered.
This matters for longer forms - a restaurant submission with hours, cuisine, price band, and images takes 5-8 minutes to complete. Losing that to an accidental refresh loses the submitter permanently in most cases.
Step 5 - Set the moderation workflow
From Listora - Settings - Moderation, configure what happens after a verified submission arrives:
Publish immediately vs. hold for review. For most directories, hold for review is the right default. You see the listing before it goes live. For high-volume directories with clean submission quality, you can switch to publish immediately and rely on post-publication flagging.
Email notification to admin. Turn on email notifications so you know when a new submission is waiting. A single email per submission is the right cadence for most directories. Batch digests are available for higher volume.
Rejection template. Write a standard rejection message template for listings that do not meet your quality bar. Being specific about why a listing was rejected (“Please add a working phone number or website URL”) is more useful to the submitter than a generic decline.
Step 6 - Configure the anti-spam settings
The 6-layer anti-spam stack runs automatically, but two settings are worth reviewing:
reCAPTCHA / Turnstile. If you are not seeing spam submissions, you may not need to enable this - it adds friction for real submitters. If spam gets through despite the other layers, enable it from Listora - Settings - Anti-spam.
Keyword blacklist. Add terms that should immediately flag a submission for manual review (or auto-reject). Useful for directories with specific off-topic problems (casino links, adult content, specific competitor names being stuffed in descriptions).
The honeypot, rate limits, Akismet, and URL density cap run without any configuration and catch the majority of automated submissions.
Step 7 - Test the form before you launch
Before announcing the submission form:
- Open the submission page in an incognito browser window (to simulate a guest).
- Submit a test listing with a real email address.
- Verify you receive the verification email.
- Click the verification link.
- Verify the listing appears in your moderation queue in the admin.
- Approve it and verify the listing appears on the public directory.
- Test the rejection flow: submit another test listing and decline it. Verify the rejection email sends.
Run this test every time you change the form configuration. A broken submission form is invisible to you but very visible to anyone who tries to use it.
What a clean submission setup looks like
| Setting | Recommended default |
|---|---|
| Guest submissions | Enabled |
| Email verification | Required |
| Draft auto-save | On |
| Moderation | Hold for review |
| Admin notifications | Per submission |
| Spam layers | All on by default; reCAPTCHA optional |
Once you have the first 20-30 real submissions through the form, you will have a clear picture of where submitters are dropping off (from the auto-save draft data), which fields are frequently empty (candidates to make optional), and whether the spam layers are holding. Adjust from there.
The submission form is the front door of your directory. Getting the configuration right before you send traffic to it is the step most directory owners skip - and the one that determines whether submissions are useful from the start.