WordPress Developer interview questions
100 real questions with model answers and explanations for Senior WordPress Developer candidates.
See a WordPress Developer resume example →Practice with flashcards
Spaced repetition · Hunter Pass
Questions
I keep WordPress core replaceable, put portable behavior in plugins, presentation in the theme, and business rules behind explicit domain services.
- Core is never patched because updates must remain vendor operations rather than merge projects.
- Plugins own post types, capabilities, APIs, and workflows that must survive a theme change.
- The theme consumes stable service interfaces and controls templates, styles, and editor presentation without becoming the data layer.
Why interviewers ask this: The interviewer is testing whether the candidate can create durable WordPress boundaries instead of concentrating the product in the theme bootstrap file.
I treat hooks as adapters at the WordPress boundary and keep the actual use cases in ordinary PHP services.
- A small registrar wires named callbacks, while constructors do not silently register global behavior.
- Services accept typed inputs and return domain results, so PHPUnit tests do not need a full WordPress bootstrap.
- WordPress objects such as WP_Post are translated at the edge instead of leaking through every business rule.
Why interviewers ask this: A strong answer separates WordPress integration mechanics from testable domain logic.
I use an mu-plugin only for platform behavior that must load on every request and must not be disabled per site.
- Environment wiring, host integrations, and network-wide security controls fit that boundary better than optional product features.
- Because WordPress loads only top-level mu-plugin files, I use a tiny loader for namespaced Composer code.
- Mu-plugins bypass normal activation hooks and admin updates, so installation and schema work belongs in deployment tooling.
Why interviewers ask this: The interviewer is checking knowledge of both the operational guarantees and lifecycle limitations of mu-plugins.
It turns WordPress core and third-party plugins into pinned dependencies and makes the repository describe a reproducible application.
- composer.lock is reviewed and deployed, while wp-content is separated into application code, managed packages, and writable uploads.
- Public web root isolation keeps configuration and vendor files outside the document root.
- Private or non-Composer plugins need an authenticated repository or artifact source, not a manual production upload.
Why interviewers ask this: The interviewer wants to see dependency architecture and reproducibility rather than mere familiarity with Composer commands.
I build one artifact and inject environment-specific configuration at runtime rather than branching application code by environment.
- Database credentials, salts, API keys, and host settings come from a secret manager or environment variables.
- wp-config.php composes immutable defaults with a small allowlist of environment overrides.
- Terraform or Kubernetes owns infrastructure values, while WordPress options remain content only when editors genuinely need to change them.
Why interviewers ask this: A strong answer distinguishes deploy-time secrets and infrastructure configuration from editable WordPress content.
I make every web node disposable and move all request-shared state out of its local filesystem and memory.
- Nodes use the same immutable code artifact and connect to shared database, object-cache, and media services.
- Health checks avoid expensive WordPress rendering, and the load balancer terminates TLS with trusted proxy headers configured correctly.
- Sticky sessions are not the design because they hide state coupling and make failover uneven.
Why interviewers ask this: The interviewer is evaluating whether the candidate understands stateless WordPress beyond simply adding more PHP containers.
I store originals and generated sizes in shared object storage and serve them through a CDN.
- Upload interception must cover metadata generation, deletion, and regenerated image sizes, not just copy the original file.
- Local disks remain ephemeral caches, so no request depends on a file written by one pod.
- Private assets use authorization plus short-lived signed delivery URLs instead of a publicly readable uploads bucket.
Why interviewers ask this: A strong answer covers the complete media lifecycle and does not confuse shared storage with public access.
No, I would first remove the need for affinity because WordPress authentication cookies can be validated by any node sharing the same salts and data stores.
- PHP sessions are avoided in plugins, or moved to Redis with explicit expiry if a legacy integration truly requires them.
- Nonces and user capabilities remain WordPress concerns and do not require load-balancer affinity.
- Eliminating stickiness gives predictable balancing and lets a node disappear without losing user state.
Why interviewers ask this: The interviewer is checking whether the candidate can distinguish WordPress cookie authentication from process-local sessions.
I disable request-driven WP-Cron and trigger due events from one controlled scheduler, then move heavy work to a durable queue.
- A Kubernetes CronJob or platform scheduler invokes WP-CLI on a fixed cadence without every web pod racing on traffic.
- Queue consumers claim jobs atomically and use idempotency keys because delivery can happen more than once.
- Scheduled callbacks remain short and record retryable work rather than processing a whole catalog inside one PHP request.
Why interviewers ask this: A strong answer separates scheduling from execution and accounts for duplicate delivery in a cluster.
I choose per consumer contract: REST for stable resource operations and WPGraphQL when clients need flexible nested content graphs.
- REST has first-class core coverage, HTTP caching that is easy to reason about, and simpler write endpoints.
- WPGraphQL reduces over-fetching across posts, terms, and custom fields, but schema extensions and query-cost controls become platform responsibilities.
- I do not expose both casually because duplicate public contracts double authorization, caching, and compatibility work.
Why interviewers ask this: The interviewer is testing a contract-based choice rather than preference for a fashionable API style.
I model editorial meaning, not one front end's page markup, and publish that meaning through a versioned schema.
- Custom post types represent durable entities, taxonomies represent shared classification, and structured fields avoid opaque HTML blobs.
- Reusable blocks are acceptable when their attributes have a documented API shape and migration path.
- Presentation-specific choices stay optional so web, mobile, and syndication clients can render the same content differently.
Why interviewers ask this: A strong answer shows that headless content modeling must outlive any single rendering implementation.
I choose at route level based on freshness, personalization, and cacheability rather than declaring the whole site static or dynamic.
- Evergreen articles can use static generation with on-demand revalidation after publication.
- Highly personalized account pages use server rendering and bypass shared caches for user-specific data.
- Preview requests use draft credentials and a separate cache path so unpublished content never contaminates public output.
Why interviewers ask this: The interviewer is evaluating whether the candidate connects Next.js rendering choices to WordPress publishing semantics.
I use a short-lived signed preview handoff that establishes preview mode in the front end and fetches revisions as the current editor.
- WordPress verifies the editor's capability and signs the target post, revision, expiry, and return URL.
- The Next.js preview endpoint validates that signature before setting an HTTP-only preview cookie.
- Preview responses are private and uncached, and their API token cannot be reused for public browsing.
Why interviewers ask this: A strong answer preserves both revision visibility and authorization across the CMS and front-end boundary.
I match authentication to the client and keep authorization in WordPress capabilities at every data boundary.
- Same-origin editorial tools can use WordPress cookies and REST nonces because the browser already has a secure session.
- Server-to-server calls use a dedicated least-privilege user with a revocable application password, or scoped OAuth credentials stored only on the server.
- I avoid long-lived JWTs in browser storage because revocation, rotation, and cross-site scripting exposure become harder.
Why interviewers ask this: The interviewer is checking that authentication mechanism and authorization policy are treated as separate decisions.
I invalidate by content dependency on committed publishing events, with TTL as a safety net rather than the primary mechanism.
- A post update purges its page, relevant archives, taxonomy pages, and API cache keys identified from a dependency map.
- WordPress sends a signed event after the write commits, and the front end deduplicates it before on-demand revalidation.
- Broad CDN purges are reserved for schema or navigation changes because they discard too much useful cache.
Why interviewers ask this: A strong answer balances freshness with cache efficiency and ties invalidation to successful WordPress writes.
WordPress should own canonical content identity and editorial SEO data, while the front end owns their final HTML rendering.
- The API exposes canonical paths, robots directives, structured metadata, and redirect records as explicit fields.
- Next.js renders server-visible head tags and applies redirects at the edge before returning a page.
- A URL change creates a redirect from the old path and invalidates both paths so search engines never see conflicting canonicals.
Why interviewers ask this: The interviewer is testing whether SEO remains an end-to-end contract after presentation is decoupled.
They remove work at different layers, so I use all three with distinct ownership and invalidation rules.
- Redis or Memcached reuses database-derived objects but PHP and template rendering still run.
- Full-page cache skips WordPress for an anonymous HTML response, while the CDN serves that response near the visitor.
- A purge must target every affected layer because clearing Redis alone cannot refresh stale HTML at the edge.
Why interviewers ask this: A strong answer understands the work each cache avoids and the consequences of layered staleness.
I keep the public cache key small and explicit, then bypass shared HTML caching when content is truly user-specific.
- Locale, host, and a bounded device class may vary public pages when they change the response.
- Arbitrary cookies never enter the key because they destroy hit rate and can leak personalized output.
- Logged-in admin bars, carts, and account data use private fragments or uncached routes rather than one full-page variant per user.
Why interviewers ask this: The interviewer is evaluating whether the candidate can preserve both cache efficiency and response isolation.
I let one worker regenerate the value while other requests receive stale data or back off briefly.
- An atomic Redis lock has a short lease and a unique owner token so it cannot remain stuck or be released by another worker.
- Stale-while-revalidate keeps the page useful during regeneration instead of sending every miss to MySQL.
- Expirations receive jitter so related keys do not all become cold at the same second.
Why interviewers ask this: A strong answer uses bounded coordination and graceful stale data rather than a fragile global lock.
I use a custom table when the data has relational constraints or query patterns that the generic meta schema cannot serve predictably.
- Orders, reservations, or event logs often need typed columns, unique keys, and compound indexes.
- Posts and meta remain appropriate for editor-owned content that benefits from revisions, permissions, and core APIs.
- The custom table comes with a repository API, explicit schema versions, retention rules, and Multisite scope.
Why interviewers ask this: The interviewer is checking whether database design follows access patterns rather than a blanket WordPress convention.
Locked questions
- 21
How do you design indexes for a large custom WordPress table?
designwordpressindexes - 22
Why are autoloaded options an architectural concern on a large WordPress site?
wordpress - 23
What work should remain synchronous in WordPress, and what should move to a queue?
wordpressdata-structures - 24
How do you decide whether data in WordPress Multisite is per-site or network-wide?
wordpressmultisite - 25
What are the architectural consequences of domain mapping in Multisite?
multisite - 26
How would you design network activation and automated site provisioning for a Multisite plugin?
designpluginsmultisite - 27
How should persistent object-cache groups be scoped in Multisite?
multisitecaching - 28
When are separate WordPress installations better than Multisite?
wordpressmultisite - 29
How do you define security boundaries in an enterprise WordPress platform?
wordpress - 30
How would you design least-privilege permissions for a custom editorial workflow?
design - 31
How do you manage dependency and supply-chain risk in a Composer-based WordPress application?
wordpressdependencies - 32
What filesystem and update strategy would you use for WordPress running in containers?
wordpresscontainers - 33
How do you control REST API exposure on an enterprise WordPress site?
restwordpress - 34
How would you deliver protected media from WordPress without making the uploads directory public?
wordpress - 35
What belongs in an immutable WordPress deployment artifact?
deploymentartifactsimmutability - 36
How do you evolve a WordPress plugin schema without breaking a rolling deployment?
wordpresspluginsschema - 37
How do database schema migrations differ from WordPress content migrations?
databaseschemamigrations - 38
What constrains blue-green or rolling deployments of WordPress?
deployment-strategieswordpressdeployment - 39
How would you structure a large block library used by several WordPress products?
wordpress - 40
What role should theme.json play in an enterprise design system?
design-systemthemesblock-themes - 41
How do you decide between static and dynamic rendering for a Gutenberg block?
gutenberg - 42
How do you evolve a widely used block without invalidating old posts?
- 43
How would you govern patterns and editor freedom across a large publishing platform?
- 44
How do you define the source of truth when WordPress integrates with a CRM or commerce platform?
wordpress - 45
How would you make queued WordPress integrations idempotent?
wordpressidempotencydata-structures - 46
What contract would you require for incoming webhooks to WordPress?
wordpresswebhooks - 47
What coding boundaries do you enforce in a senior review of a WordPress plugin?
wordpressplugins - 48
How would you combine static analysis and tests for a complex WordPress codebase?
wordpresstesting - 49
How do you define a compatibility matrix for a WordPress plugin intended for enterprise hosting?
wordpressplugins - 50
How would Kubernetes and Terraform fit a scalable WordPress architecture without hiding application concerns?
wordpresskubernetesterraform - 51
A publisher wants headless WordPress for faster delivery, but editors rely on live previews and many existing plugins; what would you recommend?
wordpresspluginsheadless - 52
Your team can build a custom editorial workflow or buy a maintained plugin that covers most requirements; how do you decide?
plugins - 53
A large WordPress plugin is slowing team delivery, and one group proposes splitting it into services; what would you do first?
wordpressplugins - 54
A company is launching regional sites with shared branding but different legal owners and release calendars; would you use Multisite?
multisite - 55
Leadership asks whether to move an enterprise WordPress estate to WordPress VIP or run it on the existing Kubernetes platform; how would you frame the choice?
wordpresskubernetes - 56
A Next.js team wants WPGraphQL while established consumers use the REST API; would you introduce a second content API?
restgraphqlnextjs - 57
A WordPress news site collapses when a major story drives a traffic spike; what is your first response and lasting fix?
wordpress - 58
MySQL becomes saturated after a WordPress release, but application errors do not identify the cause; how do you lead the investigation?
wordpress - 59
A customer reports seeing another user's account fragment on a cached WordPress page; what do you do?
wordpresscaching - 60
A cache invalidation change causes every publish action to purge most of the site and overload WordPress; how would you correct it?
wordpresscaching - 61
A widely used plugin is confirmed compromised while an important campaign is live; how do you handle the incident?
soft-skillsincidentsplugins - 62
A content migration completed with incorrect relationships and editors have continued publishing; would you restore the database?
databasemigrations - 63
A PHP or WordPress update causes a subtle checkout regression after deployment; how do you decide between rollback and forward fix?
deploymentrollbackwordpress - 64
Customers receive duplicate emails and external updates after queued WordPress jobs retry; how do you fix the behavior?
resiliencewordpressdata-structures - 65
Editors publish successfully in WordPress, but the Next.js site sometimes remains stale; where do you start?
nextjswordpress - 66
A Multisite administrator can retrieve content belonging to another tenant through a custom endpoint; how do you respond and prevent recurrence?
multisiteendpoints - 67
You must move a legacy WordPress estate to a supported PHP version without pausing feature work; how would you sequence it?
wordpress - 68
How would you lead a major WordPress core upgrade across sites with different plugin combinations?
wordpresspluginsupgrades - 69
Editors want a block editor, but the legacy theme contains years of shortcodes and custom templates; how would you migrate it?
themesgutenbergshortcodes - 70
A large WordPress site must move its media library to object storage without broken URLs or an upload freeze; what is your plan?
wordpress - 71
Product wants to replace a classic WordPress frontend with Next.js while continuing weekly releases; how would you use a strangler rollout?
migrationwordpressnextjs - 72
A busy WooCommerce store needs to adopt HPOS, but several extensions still use order posts directly; how would you proceed?
decision-makingwoocommerce - 73
You need to change a custom plugin's data model during rolling deployments; how do you apply expand-contract in practice?
modelingdeploymentplugins - 74
A critical commercial plugin is being discontinued; how would you replace it without coupling the product to the next vendor?
procurementplugins - 75
What gates would you require for a zero-downtime WordPress rollout that includes code and data changes?
wordpress - 76
You inherit several WordPress teams with inconsistent code and review practices; what standards do you establish first?
ownershipwordpress - 77
During review you see a callback attached to save_post that calls an external API and updates the post again; what feedback do you give?
feedbackapicallbacks - 78
A pull request adds raw SQL against post meta to speed up a report; how would you review it?
code-reviewsql - 79
A contractor adds a REST endpoint that exports customer records; what security review do you require?
restendpoints - 80
A mid-level developer repeatedly asks you to design their WordPress features; how do you mentor them toward ownership?
mentoringownershipdesign - 81
A team wants full browser coverage for a complex WordPress plugin, but releases are already slow; what test strategy do you choose?
wordpresspluginscoverage - 82
You lead a WordPress migration with senior engineers, juniors, and short-term contractors; how do you divide the work safely?
migrationswordpress - 83
Only one engineer understands the custom WordPress deployment and incident process; how do you reduce that bus factor?
incidentsdeploymentconcurrency - 84
How would you approve a new WordPress plugin proposed for use across the company?
wordpressplugins - 85
Marketing wants a SaaS personalization tool that could also be built inside WordPress; how do you compare the options?
discoverycloudwordpress - 86
A vendor offers an excellent WordPress search product but uses a proprietary index and query API; what protections do you require?
indexesqueriesapi - 87
A profitable WordPress product relies on a child theme full of overrides and global functions; how would you modernize it incrementally?
themeswordpress - 88
Stakeholders see no value in WordPress technical debt work; how do you decide what to fund?
tech-debtcommunicationstakeholder-management - 89
An organization has accumulated many WordPress administrators and shared service accounts; how would you restore least privilege?
least-privilegewordpress - 90
A WordPress integration secret may have leaked through build logs; how do you lead rotation?
secretswordpress - 91
Product wants WordPress to store detailed customer profiles for personalization, but security wants to minimize PII; what design do you propose?
designwordpresspii - 92
A WooCommerce team proposes handling card details in a custom checkout plugin to gain design control; what is your response?
designpluginswoocommerce - 93
Legal requires an audit trail for changes to regulated WordPress content; how would you implement one?
wordpress - 94
The business asks to retain all WordPress form submissions indefinitely in case they become useful; how do you challenge that request?
formswordpress - 95
How would you run a quarterly access review for an enterprise WordPress estate without making it a spreadsheet ritual?
wordpressspreadspreadsheets - 96
Executives say backups prove the WordPress platform can recover from disaster; what evidence would you ask for?
backupswordpress - 97
Editors reject a technically clean block system because it makes common publishing tasks slower; how do you respond?
system-design - 98
Marketing promises a campaign launch before a risky WordPress plugin integration has completed security review; what do you do?
wordpresspluginspromises - 99
Legal requires immediate deletion of published material, but CDN and headless caches may retain it; how would you make the commitment credible?
headlesscaching - 100
Executives ask for one fixed deadline to modernize a mixed WordPress estate before discovery; how do you respond?
estimationwordpress