Course Overview
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 on Udemy 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!
FAQ
FAQ area empty
Course curriculum
-
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)
-
"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
-
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
-
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
-
Solution To Undefined Array Key Message In Next Lesson
-
Alternative: Manually Handling Admin Form Submit
-
Finishing Word Filter Plugin
-
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
-
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
-
Note About 2024 Block Best Practices
-
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)
-
Note About The Next Several Lessons
-
Single Page & Post Templates
-
Don't Forget About Singular Content In Block Themes
-
Remaining Templates
-
Reminder To Use "isset" In Our "singleprofessor.php" File
-
Only Allow Certain Block Types In Certain Editor Environments
-
Quick Note About Custom Templates In The Next Lesson
-
Creating A "Blank" Template For Landing Pages
-
What Is The Interactivity API?
-
Creating Our Interactive Block
-
What Is Context In The Interactivity API?
-
Rendering HTML With The Interactivity API
-
Automatically Convert PHP Data into JS Data
-
Show Congrats & Sorry Based on Context
-
Callbacks In The Interactivity API
-
When To Use State Instead of Context
Requirment
-
Basic WordPress knowledge (how to create a blog post, etc...)
-
A basic understanding of HTML (e.g. "p" is for paragraph, "h1" is for headline, etc...)
-
No CSS knowledge required (although it helps to understand that CSS is used to add style & design to a page)
-
No JavaScript knowledge required (although it helps to understand that JS is used to add interactivity to a page)
Outcomes
-
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
Instructor
Nguyễn Đình Cường
1.2
-
1 Student
-
330 Courses
-
1253 reviews
Xin chào các bạn, tôi là Nguyễn Đình Cường, một lập trình viên và giảng viên đam mê công nghệ với hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Tôi tốt nghiệp từ Bưu Chính Viễn Thông và đã từng làm việc cho một số công ty công nghệ hàng đầu như FPT Software và VinGroup. Với chuyên môn chính là phát triển ứng dụng web, tôi đã làm việc với nhiều công nghệ như HTML, CSS, JavaScript, React cho front-end và Node.js, Express, MongoDB cho back-end. Không chỉ dừng lại ở việc viết mã, tôi còn yêu thích tìm hiểu sâu về thiết kế hệ thống và kiến trúc phần mềm. Tôi tin rằng quá trình học lập trình không chỉ đơn thuần là lý thuyết, mà còn là sự trải nghiệm thực tế và giải quyết vấn đề. Trong các khóa học của mình, tôi cố gắng cung cấp cho học viên những bài giảng thú vị và dễ hiểu, cùng với các bài tập thực hành giúp củng cố kiến thức. Tôi hy vọng rằng qua các khóa học của mình, bạn sẽ không chỉ học được cách viết mã, mà còn phát triển tư duy lập trình và kỹ năng giải quyết vấn đề. Hãy cùng nhau khám phá thế giới lập trình và biến ý tưởng của bạn thành hiện thực! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại liên hệ với tôi. Tôi rất vui được hỗ trợ bạn trong hành trình học tập của mình!
View Details