Become a WordPress Developer: Unlocking Power With Code
Unlock the full power of WordPress and go beyond "just a blog platform" by learning how to code completely custom WordPress powered sites.
Updated for 2024: New chapters about The Interactivity API, Block Themes, Full Site Editing, Gutenberg Block Type Creation, Plugin Development, React.js basics, custom MySQL essentials, and more!
I've spent the last 12 years studying WordPress, PHP, and JavaScript and now I'm here to teach you everything I know. Come along on this journey with me and become a WordPress developer.
Together we will build a website for a fictional university and along the way we will:
- Install WordPress on your personal computer so you have a private playground copy of WordPress to practice and experiment with
- Get introduced to the PHP language (this is what powers WordPress)
- Set Up a New Theme (You'll learn how to convert any HTML template into a living breathing WordPress theme)
- Create Custom Post Types and Custom Fields
- Relate pieces of content with each other (e.g. a professor and a program)
- Learn the basics of (object-oriented) JavaScript
- Leverage the WP REST API
- Learn to use JavaScript to communicate with the WordPress back-end on-the-fly
- Let visitors sign up for a basic account on our site
- Build a "My Notes" feature (user specific single page application with real-time CRUD actions)
- Let users "like" or "heart" a professor (update the professor's like count on-the-fly)
- Deploy our website live up onto the web for the entire world to view
- And much more!
This course may be brand new, but this isn’t my first time teaching. I’ve led training sessions for Fortune 500 companies and I’ve already helped over 17,000 people through online courses and received the following feedback:
"Brad definitely has some of the best techniques to embed the lesson into your mind… hands down these are the best tutorials I have had the opportunity to view."
"Presentation is concise without being tedious… you honestly feel that you have a thorough understanding of the subject."
"…[Brad] explained the process. Not memorize this or that, he explained the process. If you're looking to take a course to understand the foundations of creating websites, look no further."
Become highly valuable and relevant to the companies that are hiring WordPress developers; in one convenient place alongside one instructor. If you're ready to begin coding custom websites - I'll see you on the inside!
Your Instructor
Course Curriculum
-
StartCustom Post Types (17:49)
-
StartDisplaying Custom Post Types (19:48)
-
StartQuick Timeout: Misc Updates (14:23)
-
StartCustom Fields (19:09)
-
StartOrdering (Sorting) Custom Queries (14:09)
-
StartManipulating Default URL Based Queries (17:51)
-
StartPast Events Page (Custom Query Pagination) (18:31)
-
StartNote About PHP Warning In The Next Lesson
-
StartReduce Duplicate Code - Create Our Own Function (19:50)
-
StartSolution To "Undefined array key" Warnings
-
StartQuick Fix For Page Banner Function
-
StartUsing Our "pageBanner" Function (10:54)
-
StartReduce Duplication - "get_template_part()" (11:28)
-
StartQuick Note About The Next Lesson
-
StartLoad WP Content with JS (17:50)
-
StartGenerate HTML Based on JSON (19:58)
-
StartConditional Logic Within Template Literal (17:43)
-
StartQuick Misc Edits (10:51)
-
StartSynchronous vs Asynchronous (Part 1) (11:46)
-
StartSynchronous vs Asynchronous (Part 2) (10:11)
-
Start3 Column Layout for Search Overlay (19:58)
-
StartCustom Layout & JSON based on Post Type (19:33)
-
StartQuick Note About The Next Lesson
-
StartSearch Logic That's Aware of Relationships (16:02)
-
StartSearch Logic That's Aware of Relationships (Part 2) (19:46)
-
StartCompleting Our Search Overlay (14:25)
-
StartjQuery Free Live Search (6:51)
-
Start"My Notes" Feature (19:59)
-
Start"My Notes" Front-end Part 1 (7:31)
-
Start"My Notes" Front-end Part 2 (14:55)
-
StartQuick Note About The Next Lesson
-
StartDelete Posts with the REST API (17:51)
-
StartEdit / Update Posts with the REST API (18:30)
-
StartCreating New Notes (14:52)
-
StartCreating New Notes (Part 2) (8:48)
-
StartNote Permissions and Security (Part 1) (19:58)
-
StartNote Permissions and Security (Part 2) (19:59)
-
StartPer-User Post Limit (19:56)
-
StartQuick Note About CSS
-
StartjQuery Free My Notes (6:13)
-
StartLet Users "Like" Content (Part 1) (19:31)
-
StartLet Users "Like" Content (Part 2) (12:54)
-
StartCreating Custom POST and DELETE Endpoints (14:13)
-
StartProgrammatically Create a Post (19:17)
-
StartEnforce Limit of One Like Per User / Teacher Combo (17:28)
-
StartDon't Forget About The "isset" Solution
-
StartCompleting the LikeBox (19:45)
-
StartReminder To Use "isset" In Our LikeBox HTML Output
-
StartjQuery Free LikeBox (2:18)
-
StartGoing Live With Our Website (4:04)
-
StartThe Different Web Hosts & Plans To Consider (12:37)
-
StartInstalling WordPress On Our Live Site (9:07)
-
StartMigrate Local WP Site To Live Site (11:46)
-
StartGetting Started With GIt (14:10)
-
StartHow To Log Into Our Live Site With SSH (10:43)
-
StartTurn Live Site Into Git Host (Bare Repo) (17:57)
-
StartPasswordless SSH Login (12:16)
-
StartIntroduction to Plugin Development (13:35)
-
StartLet's Create Our First Plugin (10:39)
-
StartAdding a Settings Page For Our Plugin (14:59)
-
StartSettings API (Saving Settings Data) (19:51)
-
StartFinishing Our Settings Form (19:58)
-
StartActually Counting the Words, Characters, and Read Time (19:56)
-
StartTranslations / Localization (For PHP) (19:43)
-
StartAdmin Sub-Menu (15:59)
-
StartCustom Admin Menu Icon (17:05)
-
StartSolution To Undefined Array Key Message In Next Lesson
-
StartAlternative: Manually Handling Admin Form Submit (15:23)
-
StartFinishing Word Filter Plugin (18:03)
-
StartQuick Note About Loading Block Asset Files
-
StartStarting Our Multiple Choice Block Type (18:25)
-
StartStyling Our Block (11:25)
-
StartEvent Handling & Updating Block Attributes (19:59)
-
StartFocus New Field For Immediate Typing
-
StartSetting Up The Correct Answer (19:52)
-
StartIf You're Using a Block Theme: Load Your JS In The Footer
-
StartHow To Use React on The Front-End of WordPress (18:51)
-
StartPassing Block Data From PHP Into JavaScript / React (12:25)
-
StartLetting Users Click On (Guess) An Answer (15:15)
-
StartAttention To Detail (14:36)
-
StartA Note About Animations / Transitions in React
-
StartLet Admin Choose Background Color of Block (15:06)
-
StartBlock Text Alignment & Block Preview (8:30)
-
StartUsing The "block.json" File (17:27)
-
StartStarting Our Featured Professor Plugin (14:23)
-
StartLoading a List of Professors (13:09)
-
StartDisplaying Professor Info (19:58)
-
StartProfessor Preview in Editor (Part 1) (5:22)
-
StartProfessor Preview in Editor (Part 2) (19:22)
-
StartControl Post Meta With Block Type (19:57)
-
StartAdd Related Posts to Professor Detail Page (12:06)
-
StartTranslations / Localization (For JavaScript) (11:29)
-
StartUnderstanding The Pros and Cons of the "Post" Paradigm (19:59)
-
StartCreating Our Own Custom Table (19:42)
-
StartQuerying Our Table (16:06)
-
StartBuilding Dynamic Queries (Part 1) (10:56)
-
StartQuick Note About PHP Arrays
-
StartPHP Warnings In The Next Lesson
-
StartBuilding Dynamic Queries (Part 2) (17:34)
-
StartReminder Of PHP Warning Solution
-
StartCreate Pet From Front-End (11:34)
-
StartDelete Pet From Front-End (9:40)
-
StartConverting Plugin To Be a Block Type Plugin Instead
-
StartNote About 2024 Block Best Practices
-
StartWhat Is Full Site Editing? (10:10)
-
StartImportant Note: theme.json File Needed
-
StartCreating A Block Theme (19:58)
-
StartWhere Should We Begin With Block Themes? (10:39)
-
StartCustom Banner Block (Part 1) (4:39)
-
StartCustom Banner Block (Part 2) (18:54)
-
StartCheck For "isset" in Your Functions File
-
StartMaking Our Block Editable (10:15)
-
StartGeneric Heading Block (12:14)
-
StartFinishing Generic Heading Block (18:49)
-
StartWhat Is "theme.json" In A Block Theme? (Part 1) (2:51)
-
StartWhat Is "theme.json" In A Block Theme? (Part 2) (19:35)
-
StartHow To Disable Most Typography & Color Choices
-
StartCustom Button Block (Part 1) (5:01)
-
StartCustom Button Block (Part 2) (19:11)
-
StartColor Picker For Button Block (Part 1) (11:06)
-
StartColor Picker For Button Block (Part 2) (14:10)
-
StartQuick Note About Link Chooser Popover
-
StartOur PHP Render Approach (18:50)
-
StartUser Uploaded Background Images (Part 1) (10:15)
-
StartAbout Undefined Array Key Warnings
-
StartUser Uploaded Background Images (Part 2) (14:16)
-
StartReminder To Use "isset" In Our "banner.php" File
-
StartQuick Details: Banner Block (9:08)
-
StartEvents And Blogs Area (Part 1) (6:25)
-
StartEvents And Blogs Area (Part 2) (14:38)
-
StartHeader & Footer Blocks (12:45)
-
StartSlideshow Block (Part 1) (16:55)
-
StartQuick Note About isset()
-
StartSlideshow Block (Part 2) (11:19)
-
StartTemplates (Part 1) (8:30)
-
StartQuick Note About empty()
-
StartTemplates (Part 2) (12:21)
-
StartNote About The Next Several Lessons (6:11)
-
StartSingle Page & Post Templates (18:40)
-
StartDon't Forget About Singular Content In Block Themes
-
StartRemaining Templates (14:40)
-
StartReminder To Use "isset" In Our "singleprofessor.php" File
-
StartOnly Allow Certain Block Types In Certain Editor Environments (7:52)
-
StartQuick Note About Custom Templates In The Next Lesson
-
StartCreating A "Blank" Template For Landing Pages (6:05)
-
StartWhat Is The Interactivity API? (6:10)
-
StartCreating Our Interactive Block (19:13)
-
StartWhat Is Context In The Interactivity API? (14:12)
-
StartRendering HTML With The Interactivity API (13:28)
-
StartAutomatically Convert PHP Data Into JS Data (19:58)
-
StartShow Congrats & Sorry Based on Context (16:27)
-
StartCallbacks In The Interactivity API (9:08)
-
StartWhen To Use State Instead of Context (17:11)
Frequently Asked Questions
Instead of buying this 1 course individually it's much more cost efficient to join our "bundle" and receive all existing and future courses for 1 economical price. Check out our Premium Bundle here!