← Back to the catalog

Skill · Version 1.0.0

Update-safe WordPress features

Adds WordPress functionality through plugins, child themes and documented hooks so ordinary updates do not overwrite custom work. Follows the site's existing conventions for assets, data and translations.

wordpress-development

See how it helps

When is it useful?

Use it for custom blocks, content types, integrations or theme changes in WordPress.

What does it help you do?

  • Places persistent site functionality in a plugin and visual overrides in the appropriate theme layer.
  • Registers scripts, styles and REST routes through WordPress APIs.
  • Keeps queries bounded and user-facing text translatable.

Try asking this

Add an events content type and a reusable event-list block to our WordPress site. Keep the event data in a plugin so it survives a theme change, load block assets only where needed and paginate the list. Check editing, translation and the public view.

Detailed documentation

Read the skill’s original instructions, examples and checks in their authored language.

Details…Show less

WordPress Development

Never edit what updates overwrite

  • Never modify WordPress core (wp-admin, wp-includes) or third-party plugins and themes in place; updates erase the change.
  • Customize a third-party theme through a child theme; customize plugins through their hooks or a small custom plugin or mu-plugin.
  • Site functionality (post types, integrations) belongs in a plugin, not the theme, so it survives a theme switch.

Hooks over template edits

  • Prefer actions and filters to copying templates. Find the hook in the source before overriding a file.
  • Hook at the right time: init for post types and taxonomies, wp_enqueue_scripts / admin_enqueue_scripts for assets, rest_api_init for routes, plugins_loaded for plugin bootstrap.
  • Filters always return a value. Set priority and accepted args deliberately.
  • Override templates only through the child theme or a plugin's documented override path, and keep them minimal.

Assets

  • wp_register_script / wp_enqueue_script and wp_enqueue_style with dependencies, a version (plugin version or filemtime) and a footer or defer strategy. Never hardcode script or link tags.
  • Enqueue only where needed. Pass data to JS with wp_add_inline_script or wp_localize_script.
  • Blocks: block.json plus register_block_type, built with the repo's @wordpress/scripts setup.

Standards

  • Follow the WordPress Coding Standards; run PHPCS with the repo's phpcs.xml (WordPress ruleset) when present.
  • Prefix every global function, class, constant, option, hook, script handle and meta key with the project prefix, or use a namespace. Reuse the existing prefix.
  • Respect the minimum PHP and WordPress versions in the plugin or theme header.

Internationalization

  • Wrap user-facing strings in _(), e(), esc_html(), _x() or _n() with the project's text domain.
  • Use sprintf/printf placeholders, never concatenated sentence fragments.

Data

  • Options: prefixed names; autoload off for large or rarely used options.
  • Transients for expensive results, with an expiry; always handle a missing transient.
  • register_post_meta for meta used by REST or blocks.
  • Custom tables only when needed: dbDelta on activation, with a schema version option.

Custom post types and REST

  • register_post_type and register_taxonomy on init with labels, supports, show_in_rest and rewrite slug. Flush rewrite rules only on activation, never per request.
  • register_rest_route with a versioned namespace, an args schema with validate and sanitize callbacks, and a real permission_callback.

Query performance

  • WP_Query with bounded posts_per_page (never -1 on large sites), fields => ids when only IDs are needed, no_found_rows when not paginating.
  • Avoid unindexed meta_query in hot paths; cache results in the object cache or transients.
  • Never use query_posts; call wp_reset_postdata after custom loops. No queries inside loops.

WP-CLI

  • Use WP-CLI for local inspection and tasks (wp option get, wp post list, wp cron event list). Never run destructive commands like search-replace or db reset outside a local environment.

Before you finish

  • No core or third-party code edited; child theme or plugin used.
  • Assets enqueued properly and only where needed.
  • Everything prefixed; strings translatable with the right text domain.
  • Queries bounded, expensive results cached.
  • PHPCS with the WordPress ruleset passes on changed files if configured.

Included files 1

  • SKILL.md

About this skill package

wordpress-development

wordpress-development: Build reliable backend features, APIs and database changes with tests that protect your business rules.

Details…Show less

wordpress-development

wordpress-development: Build reliable backend features, APIs and database changes with tests that protect your business rules.

Includes the complete skill and its supporting files (1 files). The exact authored scope is preserved below.

Original skill description (source language)

Use when building or changing a WordPress theme, child theme, plugin, Gutenberg block, shortcode, hook, action, filter, enqueue script or style, custom post type, taxonomy, REST API route, WP_Query, options, transients, WP-CLI or PHPCS WordPress coding standards.

Install the skill, review its source and trust settings, then enable it for the relevant project or agent.

Requirements

  • Orqestria installed on your computer.