Resources
Standards Guides
These are some Engineering Standards in the greater WordPress Ecosystem we like:
- 10up/Engineering-Best-Practices
- WPVIP Technical Reference
- Human Made Engineering Handbook
- inpsyde/php-coding-standards
- WordPress The Right Way
Official WordPress Handbooks & Resources
- Gutenberg Storybook
- Plugin Handbook
- Theme Handbook
- HTTP API
- REST API Handbook
- $wpdb API
- Block Editor Handbook (Gutenberg Project)
- @wordpress/scripts build tooling
- @wordpress/data library
- @wordpress/components reference
-
Dashicons Reference @wordpress/icons Library - Conditional Tags
- Determining Directories & URLs
- PHP Global Variables
- Internationalization (i18n)
- Accessibility Handbook (a11y)
- WordPress TV
- Learn WordPress
Helpful Guides, Articles and References
- Understanding WordPress’ Directory Structure
- Understanding WordPress’ Heartbeat API
- Understanding WordPress Rewrite API
- Understanding @wordpress/data Redux-like stores
- Understanding WordPress SlotFill’s in JavaScript UIs
- Understanding Full Site Editing/Block Themes
- Generate WP boilerplate code generator
- YouMightNotNeedjQuery.com
- Locutus.io/php
On Leveraging Stack Overflow, The WordPress Codex and Search-Sourced Solutions
Stack Overflow, The Codex and Solutions found on blogs are often excellent starting points to learn and develop solutions. However, many solutions aren’t written to consider enterprise needs, high-traffic sites or large-scale environments so we discourage direct-copying code and adding @see
references to solutions.
When integrating someone else’s solution, please consider the following:
- Are other developers on the thread pointing out edge-cases, performance concerns or other issues the original author didn’t code for?
- Will this scale in a high-traffic environment? Can performance be better addressed through caching or storing data that’s resource-intensive to generate?
- Are there enough filters and actions for modification? Perhaps add some.
- Are variable names and function names clear? Please clarify them for our purposes.
- Is this functionality “right-sized?” Perhaps break large procedural functions into helpers.
- Does the author properly sanitize and validate user input while late-escaping output?
- Does this solution leverage language features where WordPress provides helpers to handle compatibility (i.e.
wp_json_encode()
, Filesystem API, DateTime solutions, etc)?