
learn to build WordPress themes from setup to plugin development, transforming templates into a restaurant website with a landing page, contact form, and editable menu.
Learn how PHP powers WordPress by interfacing with the database, processing forms, and delivering dynamic data on the server, while contrasting server-side PHP with client-side HTML, CSS, and JavaScript.
Master PHP variables in WordPress themes: declare and name variables, understand data types, use echo, concatenation with period, and quotes rules.
Explore arrays: define regular and associative arrays, index access starting at 0, and multi-dimensional arrays used in WordPress, with practical examples.
Learn how PHP performs arithmetic operations, including addition, subtraction, multiplication, division, and modulus, and how variables, literals, and echo interact under order of operations, with exponent support using two asterisks.
Explore how to use relational operators and logical operators in WordPress themes to create boolean conditions, compare values, and control program flow.
Learn how logical expressions drive decision making with if statements in WordPress themes, using conditionals, else if, and else to execute code based on the first true condition.
Master Wordpress loop fundamentals by applying while and for each loops to iterate arrays, manage termination conditions, and prevent bugs with yoda conditions for safer comparisons.
Learn to organize and generalize code by using reusable functions, call and pass arguments, return values or print results, and explore boolean functions and common WordPress patterns.
Install local by flywheel to quickly set up a feature-rich WordPress development environment, configure default site credentials, and learn the live links add-on for sharing work.
Install WordPress using Local by Flywheel to set up a local development environment with a dot dev domain, create your first site, access the WordPress admin, and begin developing themes.
Identify and extract WordPress template parts from ready-made HTML, including header, hero image, widget areas, and the default page and single post templates to build pages and posts.
In this lesson, review the HTML structure and head elements, note the CSS and JavaScript assets, and prepare for converting the HTML into a WordPress theme using underscores.
Explore underscores as a starter WordPress theme, generate a theme, and install it in a local WordPress site; learn how underscores provides structure and common functionality without enforcing design choices.
Download CMB2, install manually as a must-use plugin, create a mu-plugins folder and load.php to load CMB2, then verify installation in the plugins area.
Confirm a proper CMB2 installation and show how to add a custom meta box with a location field to posts and pages in a WordPress theme, via a demo.
Explore the WordPress core and the wp-content structure. Learn how themes, plugins, and uploads combine with the template hierarchy and where to safely modify your theme.
Explore the WordPress template hierarchy, understanding how templates like page-, single-, category-, and index.php render content; learn fallback rules, and how headers, footers, sidebars, and specific templates shape themes.
Copy the CSS from a template into the underscores theme, update the style.css header, and begin wiring the header, footer, and index for a WordPress theme.
Replace the theme header with the provided header, copy images into the theme, and wire CSS and JavaScript via wp_head to set up the header, navigation, content start, and search.
Create a dynamic footer in the underscores WordPress theme by turning widgets into a widget area, using register_sidebar and dynamic_sidebar, and wiring a consistent footer across pages.
Learn to style the index and news archive pages in a WordPress theme. Create a dynamic sidebar and a reusable template part with the loop.
Learn how to create a reusable WordPress template part, populate it with dynamic template tags in the loop, format dates, set permalinks, and style posts for a clean single-article display.
Duplicate the index template to create a single post template, use a content single to show full post content, and include the featured image, categories, and tags.
Build a full-width WordPress page template (page.php) and a corresponding content-page template part, adapting the loop, removing sidebars, and adding a featured image to mirror the page structure demonstrated.
Duplicate the page template as page-home, apply it to the home page, and use is_page_template with header.php; queue styles and scripts via wp_enqueue_style and wp_enqueue_script.
Build the home page template with the content loop and a home content template part using custom fields, then create the home bottom widget area for the three-column bottom grid.
Create a repeatable home page content area with CMB2, defining boxes for title, content, and a read more link, with optional icon fields.
Turn static menus into dynamic WordPress navigation by registering menus and displaying them with wp_nav_menu, adapting theme locations and css for current items; explore multiple menus and the Walker class.
Define a new section called restaurant options in the WordPress customize API, add settings and controls for social media, contact details, and address, and preview changes live.
Learn to display WordPress customizer fields on the front end with get_theme_mod, escape output, and integrate social links, add a contact page template with a sidebar and Google Maps embed.
Learn how actions and filters empower WordPress theme development by using add_action and add_filter, wiring callbacks to hooks like save_post and wp_footer, and adjusting excerpts.
Learn data validation in WordPress theme development by validating untrusted data on input and output, using context-aware sanitization and escape functions like WP KISS and sanitize titles.
Discover how to internationalize WordPress themes and plugins for easy translation across languages, and implement localization with a text domain and translation functions like __() and _e().
Develop a WordPress plugin to add a food menu with a custom post type and taxonomies, using CMB for fields like price, and keep plugin data separate.
Define and register a custom post type for a food menu, add custom fields, and configure supports and archive settings in a WordPress theme.
Register a custom taxonomy to categorize food menu items with WordPress's register_taxonomy, linked to the food_menu post type and kept hierarchical for menu categories.
Learn to build and integrate a custom food menu archive template for a WordPress theme, including archive page creation, permalink flush, and a dynamic loop with template parts.
Create a WordPress food menu single template by duplicating the base template, removing permalink and date, and building a sidebar with price, menu type, and displaying taxonomy terms with get_terms.
Clean up a WordPress theme by implementing a custom search form, wiring it correctly, and optimizing archive and home pages with template parts and show-on settings.
In Building WordPress Themes: The Step-by-Step Guide you will learn how to take a static HTML site and convert it into a fully functional WordPress theme and plugin. We'll start with a primer for PHP to understand the underlying language WordPress is written in, as well as explore some tools to help you work. Then, we'll take a look at our static site and convert it!
By the end of the course you will:
What are we building?
Since it's something we all know and love, we'll create a restaurant website! We'll build basic pages like about and contact, add a blog, and create a nice, interactive menu that's easy to update!