Skip to content
GPLWP Guides

How to collect and vote on community ideas in WordPress

Social Time About 30 minutes with a plugin, or several hours for a custom build 6 steps Updated 21 Sep 2026

SOCIAL
The short answer

WordPress core can handle idea content and comments, but it has no built-in idea submission and voting workflow. You can build one with a custom post type, a front-end form, secure vote handling and moderation, or use PeepSo IdeaPush for the faster community-ready route.

The route
  1. 01Set the rules before building
  2. 02Choose the manual route
  3. 03Configure member discussion
  4. 04Create the idea workflow
  5. 05Protect the voting process
  6. 06Use the fast plugin route

What you need

  • A WordPress site with administrator access
  • A clear rule for who may submit and vote
  • A decision about whether voting requires member accounts
  • A backup or staging site for custom development

Set the rules before building

Decide whether ideas are public, whether only logged-in members may submit and vote, whether each member gets one vote per idea, and whether members can change or remove a vote. Define the stages you will use, such as new, under review, planned, in progress and completed.

Also decide how you will handle duplicates, abusive submissions, lobbying and ideas that cannot be delivered. Showing a clear status and a short reason for rejected ideas prevents the voting page becoming a suggestion box that nobody trusts.

Choose the manual route

WordPress core provides custom post types and comments, but not a complete public idea-submission and voting system. A developer can register an Ideas custom post type on the init action, keep the content in a plugin rather than a theme, and enable comments for discussion. WordPress documents custom post types and their built-in comment support.

The same custom plugin must provide a front-end submission form, save new ideas for moderation, add a vote control, store one vote per member and sort ideas by vote count. For an AJAX vote, verify the request with check_ajax_referer() and check permissions before changing data; WordPress documents both nonce verification and capability checks.

This route is fine when you have a developer and unusual rules. Its drawbacks are the front-end work, account and abuse protection, accessibility, data migration and ongoing maintenance whenever WordPress, the theme or membership system changes.

Configure member discussion

Turn on comments for the Ideas content type and choose whether comments need approval. In Settings → Discussion, require users to be registered and logged in if ideas and votes are for members only. You can also require manual approval, limit links and use threaded comments for replies. These are WordPress discussion settings, not voting controls.

Do not confuse a comment with a vote. A member can discuss an idea without supporting it, so keep the vote action separate and display the current total beside the idea.

Create the idea workflow

Give members a simple form with an idea title, explanation, category and optional supporting details. Send submissions into a review queue rather than publishing them immediately. Before approval, check for duplicate ideas, personal data, offensive content and requests that are outside your community’s scope.

On the public ideas page, show the title, summary, author if appropriate, status, vote total, vote control and comment link. Add sorting such as newest, most voted and recently updated, but keep the current status visible so popularity does not look like a promise to build something.

Protect the voting process

Require a logged-in account when votes affect product or community decisions. Store the member identity with the idea and prevent a second vote for the same member-and-idea pair. Do not rely on a cookie or a hidden form field as the only control: those can be cleared or altered.

Test logged-out users, repeated clicks, two browser sessions, deleted accounts, unpublished ideas and permission changes. The Friday problem is usually a vote button that appears to work but increments the count twice, or a cached page that shows an old total. Exclude vote responses from page caching or update the displayed total only after the server confirms the vote.

Use the fast plugin route

For a PeepSo-based community, PeepSo IdeaPush is the faster route. It provides idea submission, member voting, comments, configurable submission and voting settings, notifications and reporting features without requiring you to build the complete workflow yourself.

Install and activate it, create the page or community area where ideas will appear, set who can submit and vote, configure the available statuses and notification behaviour, then publish a test idea. If the vote control is missing, check the idea status first: a support thread reports that voting was limited to open ideas by default.

Use the manual route when you need a tightly integrated custom workflow. Otherwise, the plugin is the quick way to collect structured feedback, discuss each idea and let members prioritise it.

The fast route

Let PeepSo IdeaPush do it

PeepSo-native idea submission, voting, comments, and notifications for communities that need structured member feedback.

Get PeepSo IdeaPush

Sources

  1. developer.wordpress.org /plugins/post-types/registering-custom-post-types/?utm_sourc…
  2. developer.wordpress.org /apis/security/nonces/?utm_source=openai
  3. wordpress.org /documentation/article/settings-discussion-screen/?utm_sourc…
  4. wordpress.org /support/topic/start-to-test-the-plugin-and-its-not-working-…