67 prompts that each build one complete, installable WordPress plugin with an AI coding tool.
Each one is a full brief, not a topic. "Contact form" gives a model nothing to work with; the fields, the validation, the spam protection and where the email goes are what decide whether the plugin fits. Each is also scoped to what one generation can actually finish, so there are no caching engines, page builders, backup suites or storefronts here.
Paste them into any AI that writes code, or use Open in Steem to build the plugin, run it in a real WordPress in your browser, and download the ZIP.
- Pick a prompt and copy it.
- Paste it into Steem, the AI WordPress plugin generator, or any coding assistant.
- Install the ZIP through Plugins β Add New β Upload Plugin.
Read generated code, or have someone read it, before activating it on a site that matters.
Every prompt is also in prompts.json, for tools and agents.
- Popular (8)
- Content (10)
- Forms (6)
- Admin (15)
- Security (6)
- Marketing (10)
- Media (2)
- Email (3)
- SEO (3)
- WooCommerce (4)
Answers visitors from your own pages.
Build an AI support chat plugin: a floating chat button that opens a panel where visitors ask questions. For each question, search the siteβs published posts and pages for the few most relevant, send their text with the question to the OpenAI API using a key stored in settings, and answer only from that content, linking the sources. When it cannot answer, offer a short form that emails the question to an address set in settings. Rate-limit questions per IP and never expose the API key to the browser.
Shortcode form that emails submissions. Alternative to Contact Form 7 (covers the core).
Build a contact form plugin with a [contact_form] shortcode. Fields for name, email and message, server-side validation, honeypot spam protection, and an email notification to an address set on an admin settings page.
WebP and AVIF copies, served automatically. Alternative to Converter for Media (covers the core).
Build an image optimisation plugin. On upload, create WebP copies of the original and every generated size using Imagick or GD, plus AVIF where the server supports it, and serve them to browsers that accept them by filtering image URLs in content and attachment output, falling back to the original otherwise. Add a quality setting, and a page under Media that converts existing images in small AJAX batches with a progress bar. Delete the copies when the attachment is deleted.
One-click copy of any post or page. Alternative to Duplicate Post.
Build a plugin that adds a "Duplicate" row action to posts, pages and custom post types. It should copy the title, content, excerpt, taxonomies, featured image and custom fields into a new draft, and redirect to the editor for the copy.
Manage 301s and watch for 404s. Alternative to Redirection.
Build a redirect manager plugin: an admin screen to add source and target URL pairs with a 301 or 302 status, applied on template_redirect. Also log 404s with a hit count so I can see what needs redirecting, and let me create a redirect straight from a logged 404.
Weekly hours, holidays and a live Open badge.
Build an opening hours plugin: a settings page to enter hours for each day of the week, including split shifts and closed days, plus dated holiday overrides. Add an [opening_hours] shortcode that renders the week as a table and an [open_status] shortcode that shows a live Open or Closed badge in the site timezone, and output OpeningHoursSpecification schema in the head.
Testimonials with fields and a shortcode. Alternative to Custom Post Type UI (covers the core).
Build a testimonials plugin: a custom post type with fields for the author name, role, photo and a star rating, plus a [testimonials] shortcode that displays them in a responsive grid.
Dismissible bar at the top of the site.
Build a plugin that shows a dismissible announcement banner at the top of the site, with an admin settings page to set the text, link URL, background colour, and toggle it on or off. Remember the dismissal per visitor for 30 days.
Collapsible questions, managed in the admin.
Build an FAQ plugin with a custom post type for questions and answers, and an [faq] shortcode that renders them as an accessible collapsible accordion with full keyboard support and correct ARIA attributes.
Auto-generated from post headings. Alternative to Easy Table of Contents.
Build a plugin that generates a table of contents from the h2 and h3 headings in a post, inserted above the content or via a [toc] shortcode. Add anchor ids to the headings, smooth-scroll to them, and let me set which post types it applies to.
Shown under each article, by taxonomy.
Build a related posts plugin that shows posts sharing categories or tags below the content, with the featured image, title and date, in a responsive grid. Settings for how many to show and which post types it applies to.
Estimated minutes on every post.
Build a plugin that calculates estimated reading time from the post word count and displays it near the title, with a [reading_time] shortcode as well. Let me set the words-per-minute rate and which post types it applies to.
Hide parts of a page from logged-out visitors.
Build a plugin with a [members_only] shortcode that hides the wrapped content from logged-out visitors and shows a configurable message with a login link instead. Add a per-role option so I can restrict to specific roles.
Upcoming events with dates, venues and schema. Alternative to The Events Calendar (covers the core).
Build an events plugin: an event post type with start and end date and time, venue name and address, and an optional ticket link. Add an [events] shortcode listing upcoming events in date order with past ones hidden, Event schema on single events, and an "Add to calendar" .ics download. Once that works I will ask for a month view and recurring events separately.
Sortable, searchable tables built in the admin. Alternative to TablePress (covers the core).
Build a tables plugin: an admin screen to create tables in an editable grid where I can add, remove and reorder rows and columns, import from CSV, and mark the first row as a header. Each table gets a [table id="β¦"] shortcode that renders accessible HTML with client-side sorting, search and pagination, using no external libraries. Sanitise every cell on save and escape it on output.
A trail back to the home page, with schema. Alternative to Breadcrumb NavXT.
Build a breadcrumbs plugin with a [breadcrumbs] shortcode and a template function themes can call. Handle the home page, posts with their primary category, nested pages, custom post type archives, taxonomy archives, search results and the not-found page, and output matching BreadcrumbList JSON-LD. Settings for the separator and the home label.
An accessible carousel from library images. Alternative to MetaSlider (covers the core).
Build an image slider plugin: an admin screen to create sliders by picking images from the media library, with a caption and optional link per slide. A [slider id="β¦"] shortcode renders a responsive carousel with arrows, dots, swipe on touch, keyboard control, and optional autoplay that pauses on hover and focus and respects prefers-reduced-motion. No jQuery or external libraries.
Page numbers instead of Older and Newer. Alternative to WP-PageNavi.
Build a pagination plugin with a template function and a [pagenavi] shortcode that output numbered page links for the current archive or search query: first, previous, a window of page numbers with ellipses, next and last. Settings for the window size and labels, accessible markup with aria-current, and minimal CSS that inherits the themeβs colours.
Email capture stored in the admin.
Build a newsletter signup plugin with a [newsletter_signup] shortcode. Store submitted email addresses in a custom table, show them on an admin screen with a CSV export, prevent duplicates, and send a confirmation email.
A form split across several screens.
Build a multi-step form plugin: a shortcode rendering a form split across three steps with a progress indicator, client and server-side validation per step, values preserved when moving back, and the completed submission emailed to an address set in settings.
Accept documents from visitors safely.
Build a plugin with a shortcode form that lets visitors upload a file along with their name and email. Restrict the allowed file types and maximum size in settings, validate them server-side, store uploads in the media library, and email me when one arrives.
A live total as visitors choose options.
Build a quote calculator plugin with a [quote_calculator] shortcode. In settings I define priced options: dropdowns, checkboxes and a quantity field. The form shows a running total as visitors choose, recalculates it on the server on submit so the price cannot be tampered with, and emails the itemised quote to the visitor and to me.
Scored questions with a result at the end.
Build a quiz plugin: a quiz post type where each quiz has multiple-choice questions with one correct answer and an optional explanation. A [quiz id="β¦"] shortcode shows one question at a time with a progress bar, scores on the server so the answers are not in the page source, and shows the score with the explanations at the end. Store results per quiz, listed on an admin screen.
Keep every Contact Form 7 message. Alternative to CFDB7.
Build a plugin that saves every Contact Form 7 submission to a custom table before the mail is sent, recording the form, the date and each field. Add an admin screen listing submissions with a filter by form, a detail view, bulk delete, and CSV export per form. Copy uploaded files somewhere private before Contact Form 7 deletes them, and only let administrators see any of it.
Show the fields you care about in list views.
Build a plugin that adds sortable custom columns to the posts list table showing the featured image thumbnail, word count and last-modified date, with a settings page to choose which columns appear and for which post types.
Insert code without touching the theme. Alternative to WPCode (covers the core).
Build a plugin with an admin settings page for pasting code into wp_head, the start of wp_body_open, and wp_footer, site-wide and per-post. Escape nothing that would break scripts, restrict access to administrators only, and never run the fields through a filter that would mangle them.
A holding page while you work. Alternative to WP Maintenance Mode.
Build a maintenance mode plugin that shows a configurable holding page to logged-out visitors while letting administrators browse normally. Settings for the heading, message, background colour and an optional expected-return time, and it should send a 503 status with a Retry-After header.
Turn comments off, everywhere or selectively. Alternative to Disable Comments.
Build a plugin that disables comments: closing them on existing content, removing the comment form and existing comments from templates, hiding the admin menu items, and removing the dashboard widget. A settings page to choose which post types it applies to.
Allow SVGs, sanitised on upload. Alternative to SVG Support.
Build a plugin that allows SVG uploads to the media library for administrators only, sanitising each file on upload to strip scripts, event handlers and external references, and rendering correct thumbnails in the media grid.
Update URLs across the database, dry run first. Alternative to Better Search Replace.
Build a database search and replace tool under Tools, for administrators only. Choose tables, enter search and replace strings, and run a dry run by default that reports matches per table without changing anything. The real run must handle serialised data by unserialising, replacing recursively and reserialising, never with a plain SQL REPLACE, and process large tables in batches. Protect every request with a nonce and a capability check.
Clear revisions, spam and expired transients. Alternative to WP-Optimize (covers the core).
Build a database cleanup plugin under Tools: show counts of post revisions, auto-drafts, trashed posts, spam and trashed comments, orphaned post meta and expired transients, and let me clean each one individually after a confirmation. Add an option to keep the last few revisions per post, and an optional weekly cleanup through WP-Cron. Administrators only, with a nonce on every action.
Emojis, embeds, XML-RPC and other extras, off.
Build a plugin with a settings page of toggles that each switch off one WordPress default: the emoji scripts, oEmbed discovery and the embed script, XML-RPC, the RSD and Windows Live Writer links, the generator meta tag, jQuery Migrate on the front end, Dashicons for logged-out visitors, and self-pingbacks. Add a Heartbeat API frequency control. Every toggle is off by default, so activating the plugin changes nothing.
Sort posts by dragging them in the list. Alternative to Post Types Order.
Build a plugin that lets me reorder posts, pages and custom post types by dragging rows in the admin list table, saving the order to menu_order over AJAX. A settings page chooses which post types are sortable, and the order applies to front-end queries for those types unless a query sets its own orderby. Once that works I will ask for taxonomy term ordering separately.
Block editor off, per post type or role. Alternative to Disable Gutenberg.
Build a plugin that disables the block editor and restores the classic editor, with a settings page to choose which post types and which user roles it applies to, an option to keep the block editor for specific post IDs, and an option to restore classic widgets. Use the use_block_editor_for_post_type and use_block_editor_for_post filters rather than removing editor files.
Hide, rename and reorder menus by role. Alternative to Admin Menu Editor (covers the core).
Build a plugin with a settings page where administrators drag to reorder the admin menu, rename items, and hide items per user role, applied on admin_menu at a late priority. Hiding a menu item does not block access to its page, so say so on the settings page, and never allow hiding anything from administrators.
Create roles and toggle capabilities. Alternative to User Role Editor (covers the core).
Build a user role editor under Users: list roles with their capabilities as checkboxes, add a role by cloning an existing one, rename and delete custom roles, and add custom capabilities. Refuse any change that would remove manage_options from the administrator role or leave the current user unable to reach this page, and offer a one-click reset of the default roles.
Drag-and-drop task boards in the admin.
Build a kanban plugin: an admin page with a board of columns I can add, rename and reorder, and task cards I can drag between columns. Each card has a title, description, an assignee from the siteβs users and a due date. Save moves over AJAX with nonces, and only let users who can edit posts see the board. Once that works I will ask for multiple boards separately.
See, run and delete scheduled events. Alternative to WP Crontrol.
Build a cron manager under Tools for administrators: list every scheduled WP-Cron event with its hook, next run, recurrence and arguments, and let me run one now, delete it, or add a new event for an existing hook and schedule. Also list the registered schedules, and flag events whose hook has no callback attached.
Who changed what, and when. Alternative to Simple History (covers the core).
Build an activity log plugin that records logins and failed logins; posts and pages created, updated, trashed or deleted; plugins and themes activated or deactivated; user and role changes; and option updates, each with the user, IP address and time. Show it on an admin screen with filters by user, event type and date, and delete entries older than a configurable number of days.
Lock out repeated failed logins. Alternative to Limit Login Attempts.
Build a plugin that limits failed login attempts by IP address, locking further attempts out for a configurable period after a configurable number of failures. Log attempts with timestamps on an admin screen, let me clear a lockout, and never reveal whether a username exists.
Move wp-login.php somewhere else. Alternative to WPS Hide Login.
Build a plugin that changes the login URL from wp-login.php to a custom slug set in settings, returning a 404 for the default URL. Make sure logout, password reset and admin redirects all still work, and warn me clearly before saving so I cannot lock myself out.
Categories, prior blocking and a JS API. Alternative to CookieYes (covers the core).
Build a cookie consent plugin. Show a banner with Accept all, Reject all and per-category choices for analytics and marketing, with rejecting no harder than accepting. Block scripts in a category until it is consented to, using a type="text/plain" data-category pattern that swaps to a real script tag on consent, so nothing loads beforehand. Expose a JavaScript API and a custom event other code can wait on. Store the choice for a configurable period and add a floating link to reopen the preferences. Once that works I will ask for a consent log separately.
Emailed codes, expiry, hashing and rate limits. Alternative to WP 2FA (covers the core).
Build an email-based two-factor authentication plugin. After a correct password, email a six-digit code that expires in ten minutes and require it before the session is created. The user must not be logged in until the code is verified. Never store the code itself: store only hash("sha256", $code . wp_salt()) and compare with hash_equals against the hash. A one-time code sitting in a transient in plain text is readable by anything with database access. Invalidate it once used or after five wrong attempts. Rate-limit code requests per user and per IP, and let me require it per role. Never reveal whether an account exists. Once that works I will ask for backup codes and trusted devices separately.
Common lockdowns, each one a toggle.
Build a security hardening plugin with a settings page of toggles: disable XML-RPC, disable the theme and plugin file editors, block user enumeration through ?author= and the REST users endpoint for logged-out visitors, hide the WordPress version, send X-Content-Type-Options, Referrer-Policy and X-Frame-Options headers, and block PHP execution in the uploads folder through .htaccess where Apache is in use.
Honeypot and timing checks, no captcha. Alternative to WP Armour.
Build an anti-spam plugin for comments with no captcha and no external API: add a honeypot field rendered by JavaScript, reject submissions made faster than a configurable number of seconds after the page loaded, and hold comments with more than a configurable number of links. Log blocked attempts with a count on an admin screen, and never block logged-in users.
Share links under every post. Alternative to Social Warfare (covers the core).
Build a social sharing plugin that adds share buttons for X, Facebook, LinkedIn and copy-link below post content, with a settings page to choose which networks appear and which post types they apply to. Use share intent URLs rather than third-party scripts, so nothing external loads.
One offer, shown as they leave.
Build an exit-intent popup plugin that shows a configurable offer when the cursor leaves the viewport, once per visitor per configurable period. Settings for the heading, body, button text and link, with a focus trap and Escape to close.
A deadline that counts down live.
Build a countdown timer plugin with a [countdown] shortcode taking a target date and time, counting down live in the visitorβs timezone and showing a configurable message when it reaches zero. Include an evergreen mode that counts down a fixed duration from each visitorβs first view.
Popups with triggers, targeting and a frequency cap. Alternative to Popup Maker (covers the core).
Build a popup plugin: a popup post type edited in the block editor, each with a trigger (time delay, scroll percentage, exit intent, or a click on an element with a given CSS class), targeting by specific pages, post types or logged-in status, and a frequency cap per visitor. Render it accessibly with a focus trap, Escape to close, and focus returned afterwards. Once that works I will ask for conversion tracking separately.
A floating button that opens a chat. Alternative to Joinchat.
Build a WhatsApp click-to-chat plugin: a floating button in a chosen corner that opens wa.me with my number and a prefilled message, which can include the current page title. Settings for the number, message, button text, colour, pages that hide it, and opening hours outside which it is hidden. Load no external scripts.
Your Google rating and latest reviews. Alternative to Widgets for Google Reviews (covers the core).
Build a Google reviews plugin: settings for a Google Places API key and place ID, fetching the placeβs rating, review count and the reviews the Places API returns (at most five) on the server, cached for 24 hours. A [google_reviews] shortcode shows them as cards with star ratings and a link to all reviews on Google. Never expose the API key in the page.
A buy button, Stripe payment, a download link.
Build a plugin for selling digital files: a product post type with a price and a protected file, and a [buy_button id="β¦"] shortcode that starts a Stripe Checkout session using keys stored in settings. A Stripe webhook, verified with its signing secret, marks the order paid and emails a download link that expires after a set number of days and downloads. Serve files through PHP from a folder that cannot be reached directly. Once that works I will ask for a sales report separately.
The GA4 tag, minus your own visits. Alternative to GA Google Analytics.
Build a Google Analytics plugin: a settings page for a GA4 measurement ID that adds the gtag.js snippet to every front-end page, skips logged-in users of chosen roles, and sets Consent Mode defaults to denied until another plugin or script grants consent. Validate the ID format and output nothing until one is saved.
The GTM container plus a useful dataLayer. Alternative to GTM4WP (covers the core).
Build a Google Tag Manager plugin: a settings page for the container ID that outputs the GTM snippet in the head and the noscript iframe after wp_body_open, and pushes a dataLayer with the page type, post ID, post type, categories, author and logged-in status before the container loads. Validate the ID and output nothing until one is saved.
Cookieless page views, stored on your site. Alternative to WP Statistics (covers the core).
Build a cookieless analytics plugin: count page views with a small script that posts to a REST endpoint, so cached pages still count, and store daily totals per URL and referrer domain in custom tables with no IP addresses or cookies. An admin page shows views over the last 30 days as a simple chart with top pages and top referrers. Ignore bots and logged-in administrators.
Rebuild image sizes after a theme change. Alternative to Regenerate Thumbnails.
Build a plugin that regenerates image thumbnails: a page under Tools that processes every image attachment in small AJAX batches with a progress bar and a log of failures, plus a "Regenerate" row action and bulk action in the media library. Add an option to delete sizes that are no longer registered. Administrators only, with a nonce on every request.
Swap a file and keep its URL. Alternative to Enable Media Replace.
Build a plugin that adds a "Replace file" option to the attachment edit screen. Upload a new file of the same type to replace the existing one, keeping the attachment ID and file name so every link keeps working, regenerate its image sizes, and update the modified date. Optionally allow a new file name and update references to it in post content. Check capabilities and validate the file type on the server.
Email subscribers when you publish. Alternative to MailPoet (covers the core).
Build a plugin that emails subscribers when a post is published. Visitors subscribe through a [subscribe] shortcode with double opt-in, subscribers are stored in a custom table, and every email carries a one-click unsubscribe link. Send in batches through WP-Cron so a large list does not time out, using a simple template with the title, excerpt and a link. An admin screen lists subscribers with a CSV export.
Send site email through your mail server. Alternative to FluentSMTP (covers the core).
Build an SMTP plugin: a settings page for host, port, encryption, username, password, from name and from address, applied through phpmailer_init. Encrypt the stored password with a key derived from the site salts, or read it from a wp-config constant when one is defined. Add a "Send test email" button that shows the full SMTP error when sending fails.
Every email the site sends, viewable and resendable. Alternative to WP Mail Logging.
Build an email log plugin that records every message sent through wp_mail, with recipients, subject, body, headers, time and whether it succeeded, using the wp_mail_failed hook to capture errors. Show them on an admin screen with search, a preview of the body, and a resend button, and delete entries older than a configurable number of days. Administrators only.
Per-page title, description and social cards.
Build an SEO meta plugin: a box on posts and pages for a custom title, meta description, canonical URL, noindex and a social image, with a live search-result preview and length guidance. Output the title through the document title filters, plus meta description, canonical, Open Graph and Twitter Card tags, falling back to the excerpt and featured image when fields are empty.
Control what goes into your sitemap. Alternative to XML Sitemap Generator for Google (covers the core).
Build a plugin that extends the core WordPress sitemap rather than replacing it: a settings page to exclude post types, taxonomies and individual posts by ID, remove the users sitemap, add lastmod dates, and add image entries for featured images. Add a noindex checkbox on posts that also removes them from the sitemap, and keep the sitemap listed in robots.txt.
Find dead links in your posts. Alternative to Broken Link Checker (covers the core).
Build a broken link checker: scan published post content for links in the background through WP-Cron, in small batches, check each URL with a HEAD request that falls back to GET, and record the status. An admin screen lists broken links with the post they appear in, the status code and when they were checked, with actions to recheck, edit the post or unlink. Wait between requests to the same domain so external sites are not hammered.
Add your own fields to checkout. Alternative to Checkout Field Editor (covers the core).
Build a WooCommerce plugin that adds custom checkout fields defined on a settings page: text, select or checkbox, required or optional, in the contact, address or order section. Register them with the Additional Checkout Fields API so they work in the block checkout, save them to the order, and show them in the order edit screen and emails. Once that works I will ask for hiding default fields separately.
Save products for later. Alternative to YITH WooCommerce Wishlist (covers the core).
Build a WooCommerce wishlist plugin: a heart button on product pages and product grids that adds or removes a product, and a [wishlist] shortcode page listing saved products with price, stock status and add to cart. Store wishlists in user meta for logged-in customers and in a cookie for guests, merged on login. Use AJAX with nonces and no page reloads.
Colour and image swatches instead of dropdowns. Alternative to Variation Swatches for WooCommerce.
Build a WooCommerce plugin that replaces variation dropdowns on product pages with swatches. Each global attribute gets a type of colour, image or button, with colour and image values set on the attribute term edit screen, and the swatches drive the hidden select so the standard variation scripts keep working. Unavailable combinations appear crossed out, with full keyboard support.
Remind shoppers who left at checkout. Alternative to Cart Abandonment Recovery for WooCommerce (covers the core).
Build a WooCommerce abandoned cart plugin: capture the email address once it is entered at checkout, along with the cart contents, mark the cart abandoned after a configurable number of minutes without an order, and send up to two reminder emails through WP-Cron, each with a link that restores the cart. Stop as soon as an order is placed, include an unsubscribe link, and list carts and their status on an admin screen.
Open an issue or a pull request. A good prompt describes one plugin a single generation can finish, names the WordPress APIs or security checks that matter, and ends with "Once that works I will ask for X separately" when there is an obvious next step. Accepted prompts are added to Steem as well.
MIT. Use the prompts anywhere.
Maintained by StartupHub.ai, makers of Steem.