Skip to content
wp-skills
Register

Changelog

Every release of WP Skills, newest first.

  1. 3.1.0

    Latest

    Every generator, checked against WordPress

    • FixedThe Meta Box Generator emitted PHP that would not compile as soon as a box held two fields whose types shared a branch — a text field and an email field, the most ordinary pairing there is. The generated switch carried two default clauses, which PHP rejects outright, so pasting the snippet took the site down instead of merely misbehaving.
    • FixedMeta boxes saved nothing. The security token was written using the title exactly as you typed it and read back in lower case, so any capital letter — including the one in the title the form starts with — meant the check looked for something that was never sent. The box appeared, accepted input, and discarded it on every save.
    • FixedSeveral Meta Box Generator field types were wrong in their own right: a media field stored an attachment ID even when you asked for a URL and never rendered its preview, a WYSIWYG field came out as a plain text input rather than an editor, a preselected radio or select option was dropped, and a checkbox you unticked re-ticked itself on the next page load.
    • FixedEnqueue Styles registered against four hooks that do not exist in WordPress. Nothing errored, because add_action accepts any name — the callback simply never ran and no stylesheet was ever loaded. Theme-relative paths were also a parse error, closing a bracket they never opened.
    • FixedThe Mail Function Generator was missing a semicolon, and built a headers array it then forgot to pass to wp_mail. Every message went out as plain text from the default address, with the sender, Cc and Bcc silently dropped — and Reply-To was never written at all.
    • FixedThe Hook Generator ignored the hook you picked. Every snippet came out attached to the same obscure Customizer hook, always through add_action even when you had chosen a filter, and the filter body returned something PHP cannot parse.
    • FixedThe Custom User Role Generator produced a role with no capabilities, because it listed them where WordPress expects them as keys, and then never registered the role at all — the function it wrote was defined and never called.
    • FixedThe Elementor Plugin Generator used two hooks that Elementor removed in 3.5, so a generated addon loaded cleanly and never registered a single widget.
    • FixedThe Custom Post Type Generator ignored its own permalink checkboxes — including the URL-base setting most people open it for — turned the query variable off whenever the field was left blank, and started you off with every option disabled, which registers a post type you cannot see in the admin, cannot query, and whose preview answers 404.
    • FixedThe Cron Job Generator scheduled events from a local-time value where WordPress requires UTC, shifting the first run by your timezone offset, and re-scheduled the same event on every single page load whenever the job took arguments.
    • FixedThe Menu Generator's untouched output declared a function with the same name as the WordPress function it calls, so copying it verbatim produced a fatal error.
    • FixedAn apostrophe anywhere in any generator broke the snippet. Nothing escaped the text you typed, so a title like O'Brien's Notes ended the PHP string early and the file stopped parsing — a fatal error from an ordinary name.
    • FixedCustom User Profile Fields wrote submitted values into user data with no cleaning of any kind, which is a stored cross-site scripting hole on the profile screen. Each field type is now cleaned on its own terms.
    • FixedSmaller corrections across the rest: the Shortcode Generator wrote callbacks that never returned their output, the Register Image Size Generator registered sizes too early in the load for them to take effect, the Admin Notice Generator's Danger option emitted a class WordPress has no styling for, and the Dashboard Widget Generator rewrote one of WordPress's internal arrays instead of passing the priority argument added in 5.6.
    • FixedOpening a snippet you had saved before a field was added to its form blanked the page instead of loading it.
    • AddedEnqueue Scripts can set a loading strategy, so a script can be deferred or loaded asynchronously without hand-editing the markup afterwards.
    • AddedThe Plugin Header Generator and Theme Header Generator cover the fields WordPress reads today: the minimum WordPress and PHP versions, required plugins, the update URI, and the version tested up to.
    • AddedAsset paths on both enqueue generators can now be resolved against a child theme or a plugin, not only the parent theme.
    • ChangedGenerated code follows current WordPress practice throughout: permission checks before saving, input cleaned per field type, and the modern media picker in place of a pattern that reached into the editor's own.
    • ChangedEvery generator's output is now run through PHP itself before release, across each branch the forms can take. The snippets that had been fatal on paste were passing the old tests, because a test that records what a generator emits cannot tell correct code from code that will not compile.
  2. 3.0.0

    Rebuilt, top to bottom

    • ChangedRebuilt the entire interface on a new design system — a monochrome, hairline-ruled layout with a bounded content column, built on SevenUI primitives.
    • ChangedRedesigned every generator page as a split workspace: the fields on the left, the generated PHP on the right, staying in view as you scroll.
    • ChangedRewrote the landing page as an index of the generators rather than a brochure, so the tools are reachable from the first screen.
    • ChangedMigrated to the Next.js App Router, moving page metadata to the server. Shared links now unfurl with a title, description and image instead of a bare URL.
    • ChangedModernised the stack: Next.js 16, React 19, Tailwind CSS 4 and a syntax highlighter that ships only the PHP grammar instead of dozens of unused ones.
    • AddedPublished this changelog on the site itself, alongside a written privacy policy and terms of service.
    • AddedA skip-to-content link, and a real heading on every generator page. Assistive technology previously had nothing to announce as the subject of a generator, and keyboard users had to walk the whole navigation to reach the fields.
  3. 2.7.0

    Every generator is now free

    • ChangedDropped the paid tier. The whole catalogue became free to use, with no plan to pick and no limit on how much you generate.
  4. 2.6.0

    Elementor plugins

    • AddedThe Elementor Plugin Generator scaffolds a working Elementor plugin rather than a single file: a widget and a settings page, already wired to each other. It is meant as the starting point you build your own plugin on top of.
  5. 2.5.0

    Scheduled tasks

    • AddedThe Cron Job Generator writes WordPress cron code — the scheduling call, the interval it runs on, and the callback that does the work. It covers the part people most often get subtly wrong: registering the event once rather than on every page load.
  6. 2.4.0

    Child themes

    • AddedThe Child Theme Generator produces the two pieces a child theme needs to inherit from its parent correctly: the stylesheet header naming the template, and the enqueue that loads the parent's styles in the right order.
  7. 2.3.1

    A NEW badge in the catalogue

    • AddedRecently added generators now carry a NEW badge, so a returning visitor can see what has landed since their last visit without reading the whole list.
  8. 2.3.0

    Custom user roles

    • AddedThe Custom User Role Generator builds a role for your site: give it a name and choose the capabilities it holds, and it writes the registration code with each capability spelled out rather than copied from another role.
  9. 2.2.0

    Hooks in a few clicks

    • AddedThe Hook Generator writes actions and filters — the registration call, the priority, and a callback whose signature matches the argument count you asked for. Mismatched argument counts are among the quietest bugs in WordPress, and this removes the chance of one.
  10. 2.1.0

    Custom post statuses

    • AddedThe Post Status Generator registers statuses beyond the built-in draft and publish, with their labels and their visibility in the admin list filled in.
  11. 2.0.2

    User profile fields fix

  12. 2.0.0

    Rebuilt from scratch

    • ChangedThe whole site was redeveloped from the ground up on top of the original version — same idea, rewritten rather than patched.
  13. 1.1.3

    Buy Me a Coffee

    • AddedA Buy Me a Coffee link, added temporarily as a way for people to support the project directly.
  14. 1.1.2

    Ads, to keep the lights on

    • AddedAdvertising was introduced so that development could continue. The generators themselves stayed free and unchanged.
  15. 1.1.1

    Tag input reworked

    • ChangedReworked the tag input, the control the generators use wherever a field takes a list of values rather than a single one.
  16. 1.1.0

    Save and edit your snippets

    • AddedGenerator output could now be saved to an account and reopened later with its fields still filled in, so a snippet could be adjusted instead of rebuilt from memory.
  17. 1.0.0

    Released, free

    • AddedThe first public release. WP Skills started from a simple observation: WordPress developers spend a great deal of time retyping PHP they have already written, and a form can do that part for them.

Want something the generators do not cover yet? Ask on the contact page, or read more about the project.