Become a WordPress Developer: Unlocking Power With Code
Course description
Read more about the course
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!
Watch Online
Watch Online Become a WordPress Developer: Unlocking Power With Code
All Course Lessons (173)
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Welcome to the Course! Demo | 10:00 | |
| 2 | What is a Dev Environment? (Your First Installation) | 13:35 | |
| 3 | About The Recent Big Changes To WordPress | 03:48 | |
| 4 | First Taste of PHP | 16:32 | |
| 5 | Creating a New Theme | 12:05 | |
| 6 | PHP Functions | 14:53 | |
| 7 | PHP Arrays | 12:29 | |
| 8 | The Famous "Loop" in WordPress | 14:31 | |
| 9 | Header & Footer | 18:34 | |
| 10 | Convert Static HTML Template into WordPress (Part 1) | 03:30 | |
| 11 | Convert Static HTML Template into WordPress (Part 2) | 18:04 | |
| 12 | Interior Page Template | 17:53 | |
| 13 | Parent & Children Pages | 16:59 | |
| 14 | To Echo or Not To Echo | 09:02 | |
| 15 | Menu of Child Page Links | 19:58 | |
| 16 | A Few Quick Edits / Improvements | 09:22 | |
| 17 | Navigation Menus | 15:39 | |
| 18 | Navigation Menus (Continued) | 05:07 | |
| 19 | Blog Listing Page (index.php vs front-page.php) | 19:59 | |
| 20 | Blog Continued | 13:15 | |
| 21 | Blog Archives (archive.php) | 12:10 | |
| 22 | Custom Queries | 19:59 | |
| 23 | Blog: Few Quick Edits & Improvements | 06:32 | |
| 24 | Custom Post Types | 17:50 | |
| 25 | Displaying Custom Post Types | 19:49 | |
| 26 | Quick Timeout: Misc Updates | 14:24 | |
| 27 | Custom Fields | 19:10 | |
| 28 | Ordering (Sorting) Custom Queries | 14:10 | |
| 29 | Manipulating Default URL Based Queries | 17:52 | |
| 30 | Past Events Page (Custom Query Pagination) | 18:32 | |
| 31 | Creating Relationships Between Content | 18:41 | |
| 32 | Displaying Relationships (Front-End) | 19:59 | |
| 33 | Quick Program Edits | 08:51 | |
| 34 | Professors Post Type | 19:13 | |
| 35 | Featured Image (Post Thumbnail) | 19:07 | |
| 36 | Featured Image Sizes & Cropping | 09:16 | |
| 37 | Page Banner Dynamic Background Image | 15:13 | |
| 38 | Reduce Duplicate Code - Create Our Own Function | 19:51 | |
| 39 | Using Our "pageBanner" Function | 10:55 | |
| 40 | Reduce Duplication - "get_template_part()" | 11:29 | |
| 41 | Getting Our Computer & Project Ready for JavaScript | 16:07 | |
| 42 | Optional: The Finished Product Of This Course: All In One Import File | 13:31 | |
| 43 | Campus Post Type | 19:47 | |
| 44 | Campus Map on Front-End | 18:52 | |
| 45 | Campuses Continued | 19:54 | |
| 46 | Final Campus Details | 04:36 | |
| 47 | Live Search | 09:54 | |
| 48 | Open and Close Search Overlay | 18:17 | |
| 49 | Keyboard Events in JavaScript | 19:39 | |
| 50 | Managing Time in JavaScript | 15:33 | |
| 51 | Waiting / Loading Spinner Icon | 19:59 | |
| 52 | Load WP Content with JS | 17:51 | |
| 53 | Generate HTML Based on JSON | 19:59 | |
| 54 | Conditional Logic Within Template Literal | 17:44 | |
| 55 | Quick Misc Edits | 10:52 | |
| 56 | Synchronous vs Asynchronous (Part 1) | 11:47 | |
| 57 | Synchronous vs Asynchronous (Part 2) | 10:12 | |
| 58 | REST API: Add New Custom Field | 15:51 | |
| 59 | REST API: Add New Custom Route (URL) | 16:38 | |
| 60 | Create Your Own Raw JSON Data | 14:11 | |
| 61 | WP_Query and Keyword Searching | 08:26 | |
| 62 | Working With Multiple Post Types | 10:41 | |
| 63 | 3 Column Layout for Search Overlay | 19:59 | |
| 64 | Custom Layout & JSON based on Post Type | 19:34 | |
| 65 | Search Logic That's Aware of Relationships | 16:03 | |
| 66 | Search Logic That's Aware of Relationships (Part 2) | 19:47 | |
| 67 | Completing Our Search Overlay | 14:26 | |
| 68 | jQuery Free Live Search | 06:51 | |
| 69 | Traditional WordPress Searching | 19:02 | |
| 70 | Traditional WordPress Searching (Part 2) | 19:59 | |
| 71 | User Roles and Permissions | 19:59 | |
| 72 | Open Registration | 20:00 | |
| 73 | Open Registration (Part 2) | 11:49 | |
| 74 | "My Notes" Feature | 20:00 | |
| 75 | "My Notes" Front-end Part 1 | 07:32 | |
| 76 | "My Notes" Front-end Part 2 | 14:56 | |
| 77 | Delete Posts with the REST API | 17:52 | |
| 78 | Edit / Update Posts with the REST API | 18:31 | |
| 79 | Creating New Notes | 14:53 | |
| 80 | Creating New Notes (Part 2) | 08:49 | |
| 81 | Note Permissions and Security (Part 1) | 19:59 | |
| 82 | Note Permissions and Security (Part 2) | 20:00 | |
| 83 | Per-User Post Limit | 19:57 | |
| 84 | jQuery Free My Notes | 06:14 | |
| 85 | Let Users "Like" Content (Part 1) | 19:32 | |
| 86 | Let Users "Like" Content (Part 2) | 12:55 | |
| 87 | Creating Custom POST and DELETE Endpoints | 14:14 | |
| 88 | Programmatically Create a Post | 19:18 | |
| 89 | Enforce Limit of One Like Per User/Teacher Combo | 17:29 | |
| 90 | Completing the LikeBox | 19:46 | |
| 91 | jQuery Free LikeBox | 02:19 | |
| 92 | Going Live with Our Website | 09:04 | |
| 93 | Path A (Simple and Quick) | 18:27 | |
| 94 | Path B (Advanced / Manually Moving a Site) | 13:24 | |
| 95 | Database Config for Two Site Environments | 10:22 | |
| 96 | Ignoring Certain Files with Git | 07:52 | |
| 97 | Automatic Git Deployments to Web Host | 14:59 | |
| 98 | Challenge: Make Homepage Slideshow Dynamic | 09:32 | |
| 99 | Introduction to Plugin Development | 13:36 | |
| 100 | Let's Create Our First Plugin | 10:40 | |
| 101 | Adding a Settings Page For Our Plugin | 15:00 | |
| 102 | Settings API (Saving Settings Data) | 19:52 | |
| 103 | Finishing Our Settings Form | 19:59 | |
| 104 | Actually Counting the Words, Characters, and Read Time | 19:57 | |
| 105 | Translations / Localization (For PHP) | 19:44 | |
| 106 | Admin Sub-Menu | 16:00 | |
| 107 | Custom Admin Menu Icon | 17:06 | |
| 108 | Alternative: Manually Handling Admin Form Submit | 15:24 | |
| 109 | Finishing Word Filter Plugin | 18:04 | |
| 110 | Introduction to JavaScript Plugin Development | 19:45 | |
| 111 | Introduction to JSX | 19:47 | |
| 112 | Block Type Attributes | 20:00 | |
| 113 | Let's Discuss the Output of Our Block (Part 1) | 11:53 | |
| 114 | Let's Discuss the Output of Our Block (Part 2) | 10:08 | |
| 115 | Starting Our Multiple Choice Block Type | 18:26 | |
| 116 | Styling Our Block | 11:26 | |
| 117 | Event Handling & Updating Block Attributes | 20:00 | |
| 118 | Setting Up The Correct Answer | 19:53 | |
| 119 | How To Use React on The Front-End of WordPress | 18:52 | |
| 120 | Passing Block Data From PHP Into JavaScript / React | 12:26 | |
| 121 | Letting Users Click On (Guess) An Answer | 15:16 | |
| 122 | Attention To Detail | 14:37 | |
| 123 | Let Admin Choose Background Color of Block | 15:07 | |
| 124 | Block Text Alignment & Block Preview | 08:31 | |
| 125 | Using The "block.json" File | 17:28 | |
| 126 | Starting Our Featured Professor Plugin | 14:24 | |
| 127 | Loading a List of Professors | 13:10 | |
| 128 | Displaying Professor Info | 19:59 | |
| 129 | Professor Preview In Editor (Part 1) | 05:23 | |
| 130 | Professor Preview In Editor (Part 2) | 19:23 | |
| 131 | Control Post Meta With Block Type | 19:58 | |
| 132 | Add Related Posts to Professor Detail Page | 12:06 | |
| 133 | Translations / Localization (For JavaScript) | 11:30 | |
| 134 | Understanding The Pros and Cons of the "Post" Paradigm | 20:00 | |
| 135 | Creating Our Own Custom Table | 19:43 | |
| 136 | Querying Our Table | 16:07 | |
| 137 | Building Dynamic Queries (Part 1) | 10:57 | |
| 138 | Building Dynamic Queries (Part 2) | 17:35 | |
| 139 | Create Pet From Front-End | 11:35 | |
| 140 | Delete Pet From Front-End | 09:41 | |
| 141 | What Is Full Site Editing? | 10:11 | |
| 142 | Creating A Block Theme | 19:59 | |
| 143 | Where Should We Begin With Block Themes? | 10:40 | |
| 144 | Custom Banner Block (Part 1) | 04:40 | |
| 145 | Custom Banner Block (Part 2) | 18:55 | |
| 146 | Making Our Block Editable | 10:16 | |
| 147 | Generic Heading Block | 12:15 | |
| 148 | Finishing Generic Heading Block | 18:50 | |
| 149 | What Is "theme.json" In A Block Theme? (Part 1) | 02:52 | |
| 150 | What Is "theme.json" In A Block Theme? (Part 2) | 19:36 | |
| 151 | Custom Button Block (Part 1) | 05:02 | |
| 152 | Custom Button Block (Part 2) | 19:12 | |
| 153 | Color Picker For Button Block (Part 1) | 11:07 | |
| 154 | Color Picker For Button Block (Part 2) | 14:11 | |
| 155 | Our PHP Render Approach | 18:51 | |
| 156 | User Uploaded Background Images (Part 1) | 10:16 | |
| 157 | User Uploaded Background Images (Part 2) | 14:17 | |
| 158 | Quick Details: Banner Block | 09:08 | |
| 159 | Events And Blogs Area (Part 1) | 06:26 | |
| 160 | Events And Blogs Area (Part 2) | 14:39 | |
| 161 | Header & Footer Blocks | 12:46 | |
| 162 | Slideshow Block (Part 1) | 16:56 | |
| 163 | Slideshow Block (Part 2) | 11:20 | |
| 164 | Templates (Part 1) | 08:31 | |
| 165 | Templates (Part 2) | 12:22 | |
| 166 | Single Page & Post Templates | 18:41 | |
| 167 | Remaining Templates | 14:41 | |
| 168 | Only Allow Certain Block Types In Certain Editor Environments | 07:53 | |
| 169 | Creating A "Blank" Template For Landing Pages | 06:06 | |
| 170 | Challenge: Have an Update Plan in Place (Security) | 08:13 | |
| 171 | Challenge: Query Vars | 12:48 | |
| 172 | Finale: JavaScript Next Steps | 06:07 | |
| 173 | Bonus Lecture | 03:36 |
Unlock unlimited learning
Get instant access to all 172 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionComments
0 commentsSimilar courses

Self-Made SaaS Course

Object-oriented Programming in JavaScript

Want to join the conversation?
Sign in to comment