Skip to main content
CourseFlix

Become a WordPress Developer: Unlocking Power With Code

41h 45m 55s
English
Paid
Learn PHP, JavaScript, WordPress theming & the WP REST API to Create Custom & Interactive WordPress Websites. Unlock the full power of WordPress and go beyond "just a blog platform" by learning how to code completely custom WordPress powered sites. 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!

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 173 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 173 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Welcome to the Course!
All Course Lessons (173)
#Lesson TitleDurationAccess
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 subscription

Course content

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

Related courses

  • Modern JavaScript From The Beginning 2.0 thumbnail

    Modern JavaScript From The Beginning 2.0

    By: Brad Traversy
    This is a 37+ hour in-depth course that will take you from the absolute beginning of JavaScript, learning about data types, functions and loops to learning DOM
    36 hours 42 minutes 18 seconds 5 / 5
  • Data Visualization + D3.js thumbnailFree

    Data Visualization + D3.js

    By: SuperHi
    Our Data Visualization course focuses on the practical aspects of working with data. In our 6-week long course, we’ll cover the basics of storytelling and worki
    16 hours 48 minutes 54 seconds 5 / 5
  • The Ultimate JavaScript Animation Course thumbnail

    The Ultimate JavaScript Animation Course

    By: Dev Ed
    Learn how to do creative and engaging animation with no previous experience. Animation is so important in front end design as it grabs the attention of the user
    8 hours 32 minutes 37 seconds

Frequently asked questions

What is Become a WordPress Developer: Unlocking Power With Code about?
Learn PHP, JavaScript, WordPress theming & the WP REST API to Create Custom & Interactive WordPress Websites. Unlock the full power of WordPress and go beyond "just a blog platform" by learning how to code completely custom WordPress…
Who teaches Become a WordPress Developer: Unlocking Power With Code?
Become a WordPress Developer: Unlocking Power With Code is taught by Udemy. You can find more courses by this instructor on the corresponding source page.
How long is Become a WordPress Developer: Unlocking Power With Code?
Become a WordPress Developer: Unlocking Power With Code contains 173 lessons with a total runtime of 41 hours 45 minutes. All lessons are available to watch online at your own pace.
Is Become a WordPress Developer: Unlocking Power With Code free to watch?
Become a WordPress Developer: Unlocking Power With Code is part of CourseFlix's premium catalog. A CourseFlix subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch Become a WordPress Developer: Unlocking Power With Code online?
Become a WordPress Developer: Unlocking Power With Code is available to watch online on CourseFlix at https://courseflix.net/course/become-a-wordpress-developer-unlocking-power-with-code. The page hosts every lesson with the integrated video player; no download is required.