Course Highlights
  • Why code is the key to building whatever you can imagine with WordPress
  • The ability to write PHP to manipulate the data of a WordPress site
  • The ability to write JavaScript to add on-the-fly interactivity to a WordPress site
  • How to code your own new custom block types for the "Gutenberg" Block Editor
  • The skills, knowledge and vocabulary to work professionally as a WordPress developer
Curriculum

1 Topic
Welcome to the Course!

4 Topics
What is a Dev Environment? (Your First Installation)
If You're Unable to Install Local by Flywheel
About The Recent Big Changes To WordPress
First Taste of PHP

4 Topics
A Note About URLs / My Address Bar
Creating a New Theme
PHP Functions
PHP Arrays

5 Topics
The Famous "Loop" in WordPress
Header & Footer
Optional: If You Want To Skip To One of The Final Chapters In The Course...
Convert Static HTML Template into WordPress (Part 1)
Convert Static HTML Template into WordPress (Part 2)

7 Topics
Interior Page Template
Parent & Children Pages
To Echo or Not To Echo
Menu of Child Page Links
A Few Quick Edits / Improvements
Navigation Menus
Navigation Menus (Continued)

5 Topics
Blog Listing Page (index.php vs front-page.php)
Blog Continued
Blog Archives (archive.php)
Custom Queries
Blog: Few Quick Edits & Improvements

9 Topics
Custom Post Types
Using The Modern Block Editor For Our Custom Post Type
Displaying Custom Post Types
Quick Timeout: Misc Updates
Custom Fields
A Note About the WordPress Post Edit Screen
Ordering (Sorting) Custom Queries
Manipulating Default URL Based Queries
Past Events Page (Custom Query Pagination)

3 Topics
Creating Relationships Between Content
Displaying Relationships (Front-End)
Quick Program Edits

5 Topics
Quick Note About The Next Lesson
Professors Post Type
Featured Image (Post Thumbnail)
Featured Image Sizes & Cropping
Page Banner Dynamic Background Image

6 Topics
Note About PHP Warning In The Next Lesson
Reduce Duplicate Code - Create Our Own Function
Solution To "Undefined array key" Warnings
Quick Fix For Page Banner Function
Using Our "pageBanner" Function
Reduce Duplication - "get_template_part()"

3 Topics
Getting Our Computer & Project Ready for JavaScript
Important Note About The Next Lesson
Optional: The Finished Product Of This Course: All In One Import File

5 Topics
Note About Google Maps JavaScript API
Campus Post Type
Campus Map on Front-End
Campuses Continued
Final Campus Details

7 Topics
Live Search
Quick Note About The Next Lesson
Open and Close Search Overlay
Preventing the Text Field Suggestions Pop-up
Keyboard Events in JavaScript
Managing Time in JavaScript
Waiting / Loading Spinner Icon

7 Topics
Quick Note About The Next Lesson
Load WP Content with JS
Generate HTML Based on JSON
Conditional Logic Within Template Literal
Quick Misc Edits
Synchronous vs Asynchronous (Part 1)
Synchronous vs Asynchronous (Part 2)

5 Topics
REST API: Add New Custom Field
REST API: Add New Custom Route (URL)
Create Your Own Raw JSON Data
WP_Query and Keyword Searching
Working With Multiple Post Types

7 Topics
3 Column Layout for Search Overlay
Custom Layout & JSON based on Post Type
Quick Note About The Next Lesson
Search Logic That's Aware of Relationships
Search Logic That's Aware of Relationships (Part 2)
Completing Our Search Overlay
jQuery Free Live Search

2 Topics
Traditional WordPress Searching
Traditional WordPress Searching (Part 2)

3 Topics
User Roles and Permissions
Open Registration
Open Registration (Part 2)

13 Topics
"My Notes" Feature
"My Notes" Front-end Part 1
"My Notes" Front-end Part 2
Quick Note About The Next Lesson
Delete Posts with the REST API
Edit / Update Posts with the REST API
Creating New Notes
Creating New Notes (Part 2)
Note Permissions and Security (Part 1)
Note Permissions and Security (Part 2)
Per-User Post Limit
Quick Note About CSS
jQuery Free My Notes

9 Topics
Let Users "Like" Content (Part 1)
Let Users "Like" Content (Part 2)
Creating Custom POST and DELETE Endpoints
Programmatically Create a Post
Enforce Limit of One Like Per User/Teacher Combo
Don't Forget About The "isset" Solution
Completing the LikeBox
Reminder To Use "isset" In Our LikeBox HTML Output
jQuery Free LikeBox

7 Topics
Going Live with Our Website
A Note About Google Maps and Our Live Site
Path A (Simple and Quick)
Path B (Advanced / Manually Moving a Site)
Database Config for Two Site Environments
Ignoring Certain Files with Git
Automatic Git Deployments to Web Host

1 Topic
Challenge: Make Homepage Slideshow Dynamic

11 Topics
Introduction to Plugin Development
Let's Create Our First Plugin
Adding a Settings Page For Our Plugin
Settings API (Saving Settings Data)
Finishing Our Settings Form
Actually Counting the Words Characters and Read Time
Translations / Localization (For PHP)
Admin Sub-Menu
Custom Admin Menu Icon
Alternative: Manually Handling Admin Form Submit
Finishing Word Filter Plugin

5 Topics
Introduction to JavaScript Plugin Development
Introduction to JSX
Block Type Attributes
Let's Discuss the Output of Our Block (Part 1)
Let's Discuss the Output of Our Block (Part 2)

15 Topics
Quick Note About Loading Block Asset Files
Starting Our Multiple Choice Block Type
Styling Our Block
Event Handling & Updating Block Attributes
Focus New Field For Immediate Typing
Setting Up The Correct Answer
If You're Using a Block Theme: Load Your JS In The Footer
How To Use React on The Front-End of WordPress
Passing Block Data From PHP Into JavaScript / React
Letting Users Click On (Guess) An Answer
Attention To Detail
A Note About Animations / Transitions in React
Let Admin Choose Background Color of Block
Block Text Alignment & Block Preview
Using The "block.json" File

8 Topics
Starting Our Featured Professor Plugin
Loading a List of Professors
Displaying Professor Info
Professor Preview In Editor (Part 1)
Professor Preview In Editor (Part 2)
Control Post Meta With Block Type
Add Related Posts to Professor Detail Page
Translations / Localization (For JavaScript)

11 Topics
Understanding The Pros and Cons of the "Post" Paradigm
Creating Our Own Custom Table
Querying Our Table
Building Dynamic Queries (Part 1)
Quick Note About PHP Arrays
PHP Warnings In The Next Lesson
Building Dynamic Queries (Part 2)
Reminder Of PHP Warning Solution
Create Pet From Front-End
Delete Pet From Front-End
Converting Plugin To Be a Block Type Plugin Instead

38 Topics
What Is Full Site Editing?
Important Note: theme.json File Needed
Creating A Block Theme
Where Should We Begin With Block Themes?
Custom Banner Block (Part 1)
Custom Banner Block (Part 2)
Check For "isset" in Your Functions File
Making Our Block Editable
Generic Heading Block
Finishing Generic Heading Block
What Is "theme.json" In A Block Theme? (Part 1)
What Is "theme.json" In A Block Theme? (Part 2)
How To Disable Most Typography & Color Choices
Custom Button Block (Part 1)
Custom Button Block (Part 2)
Color Picker For Button Block (Part 1)
Color Picker For Button Block (Part 2)
Quick Note About Link Chooser Popover
Our PHP Render Approach
User Uploaded Background Images (Part 1)
About Undefined Array Key Warnings
User Uploaded Background Images (Part 2)
Reminder To Use "isset" In Our "banner.php" File
Quick Details: Banner Block
Events And Blogs Area (Part 1)
Events And Blogs Area (Part 2)
Header & Footer Blocks
Slideshow Block (Part 1)
Quick Note About isset()
Slideshow Block (Part 2)
Templates (Part 1)
Quick Note About empty()
Templates (Part 2)
Single Page & Post Templates
Remaining Templates
Reminder To Use "isset" In Our "singleprofessor.php" File
Only Allow Certain Block Types In Certain Editor Environments
Creating A "Blank" Template For Landing Pages

4 Topics
Challenge: Have an Update Plan in Place (Security)
Challenge: Query Vars
Finale: JavaScript Next Steps
Bonus Lecture

  Write a Review

Become a WordPress Developer: Unlocking Power With Code

Go to Paid Course