Tutorials
Short, focused articles on one idea at a time. Filter by level or type, or search for a topic.
-
Your first WordPress plugin
Create a plugin with a header, hook into WordPress and activate it.
-
Plugin structure and best practices
Organise files, prefix everything, guard direct access and keep the main file small.
-
Activation, deactivation and uninstall
Run setup on activation, clean up on deactivation, and remove data on uninstall when users ask for it.
-
Admin menus and pages
Add admin menus and submenus with the right capabilities, and render admin pages.
-
The Settings API
Register settings, sections and fields with sanitisation, so options save securely.
-
WordPress for developers: how it fits together
WordPress from a developer’s view: core, themes, plugins, the database and the block editor.
-
Setting up local WordPress development
Run WordPress locally with tools such as wp-env, Laragon or Local, and enable debugging.
-
WordPress file structure and wp-config.php
What lives in wp-admin, wp-includes and wp-content, and the wp-config.php settings developers change.
-
Actions and filters: introduction to hooks
How actions and filters work, add_action and add_filter, and finding the right hook.
-
The Loop and template tags
How the Loop displays posts, common template tags, and the main query.
-
Posts, meta and the WordPress database
The core tables, how posts, meta, terms and options relate, and why direct SQL is rarely needed.
-
Hook priority, arguments and custom hooks
Control order with priority, accept arguments, remove callbacks, and add hooks to your own code.
-
Custom post types
Register post types with the right labels, supports, rewrite rules and REST settings.
-
Custom taxonomies
Register hierarchical and flat taxonomies, attach them to post types and query by term.
-
WP_Query in depth
Build custom queries, pagination, ordering, and performance flags such as no_found_rows.
-
Meta queries and tax queries
Filter by custom fields and terms, combine conditions, and know when meta queries get slow.
-
Changing the main query with pre_get_posts
Modify archives and search safely with pre_get_posts instead of extra queries.
-
Enqueuing scripts and styles
Load CSS and JavaScript the WordPress way, with dependencies, versions, defer and conditional loading.
-
Automated accessibility testing and its limits
Run axe and Lighthouse, read their results, and know the large share of issues only manual testing finds.
-
Testing with a screen reader: NVDA and VoiceOver basics
Start NVDA or VoiceOver, navigate by headings, landmarks and forms, and note what to listen for.