Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Zac Gordon

WordPress is the leading Content Management System on the market, powering a large percentage of the Web. The need for WordPress Developers who can build and customize themes and plugins is ever growing. Learn from one of the most recognized educators in the WordPress world, Zac Gordon, who has taught thousands of people now employed as WordPress Developers.

Read more

WordPress is the leading Content Management System on the market, powering a large percentage of the Web. The need for WordPress Developers who can build and customize themes and plugins is ever growing. Learn from one of the most recognized educators in the WordPress world, Zac Gordon, who has taught thousands of people now employed as WordPress Developers.

If you want to learn everything from customizing existing themes, building custom themes or starting to build plugins, this course is for you. You will learn in depth how WordPress works under the hood, from template files and tags to hooks and internal APIs. If you are looking to build bigger and more custom projects with WordPress or just get a good job with a great company building WordPress projects, then this course is for you. Make sure though you can already build and style a basic web page with HTML and CSS as we assume you already know this and focus more on learning PHP.

When you learn the skills this course contains you will feel incredibly empowered to build almost anything you can imagine with WordPress. You should also feel confident working professionally in the field as a WordPress Developer. You will have built a theme and plugin along with the course as well as a theme and plugin of your own. Follow in the path of thousands of others of Zac's students who learned WordPress Development and went on to do great work in the field.

Enroll now

What's inside

Learning objectives

  • Php for wordpress - the loop, conditionals, hooks and more!
  • How to work with child and starter themes like pro
  • The ins and outs of the template hierarchy - always know what file to customize
  • How to enqueue and work with javascript and css in themes
  • The complete list of template tags to use when customizing and extending themes
  • A deep understanding of how to use action and filter hooks to programmatically control wordpress
  • A solid starter template for building your own wordpress plugins
  • Common practices and techniques for building custom wordpress plugins

Syllabus

In this section we will make sure we have everything we need setup to start coding WordPress themes and plugins with a focus on PHP.

Welcome!  In this first lesson we go over what we will learn in this course.

This course does not teach, but does use HTML and CSS, so we recommend you learn that first.

Overall the course covers the following topics:

  1. How to setup your local environment
  2. How to setup you hosting environment
  3. PHP for WordPress (The Loop, Conditionals, Tags, Hooks, etc)
  4. How to work with Child Themes and Starter Themes
  5. The Template Hierarchy and Template Tags
  6. Action and Filter Hooks
  7. How to Start Building Plugins
  8. Internal WordPress REST APIs

Throughout the course you will follow along with me as I build a theme and plugin and have the opportunity to build your own theme and plugin as well :)

Next up we'll look at how to setup our local WordPress environment so we can run WordPress on our computer.

Read more

Local WordPress Development refers to running WordPress on your computer and editing the files locally, on your computer, rather than using a hosted version of WordPress to develop with.

We look at a few different options for locally running WordPress on our computers:

  • DesktopServer from ServerPress
  • Local from Flywheel

In this lesson we look at how to run WordPress locally using DesktopServer from ServerPress.

In this lesson we look at how to run WordPress locally using Local from Flywheel.

In this lesson we look at how to find the WordPress files that you will need to edit when you work with Desktop and Local.

In this lesson we introduce this section on PHP for WordPress and go over what we will learn in the coming lessons:

  • Explain what PHP is and how it works
  • Write some PHP and learning the basics of the language
  • Introduce important WordPress specific PHP things that are important to know about, like the Loop, Template Tags, and Hooks

Next up we answer the question, "What is PHP?"

In this lesson we learn the PHP stands for "PHP: Hypertext Preprocessor" and runs before the HTML for a web page is generated.  PHP runs a lot in WordPress and can be used outside of WordPress as well to build sites and applications.

PHP Review:

  • PHP is a programming language
  • It runs on the server before HTML is sent to the browser
  • PHP is used quite a lot in WordPress itself and in WordPress Development
  • PHP can also be used outside of WordPress in other applications and web sites

Next up we practice writing some PHP.

In this lesson we start to write some basic PHP.

Covered in this lesson:

  • Opening an index.php file
  • Writing a variable
  • Echoing a variable
  • Echoing a string of text
  • Concatenating or combining variables and strings

Next up we learn some more PHP Programming Basics.

In text lesson we outline some of the basics of working with PHP that are important for us to know going forward.  Read through and absorb what you can and in the next lesson we will look at putting some of this into practice.

In this lesson we work on the following practice exercise:

  1. Activate theme 1.4 PHP Basics (Starter)
  2. Create an array of post titles
  3. Loop through the array of posts
  4. Inside of the Loop, call a display_title() function and pass it the title as a parameter
  5. Have the display_title() function echo the title in an <h3> tag

Try practicing this on your own before checking out the completed solution and the walk through in the video.

In this lesson we learn about the WordPress Coding Standards.  

These are guidelines and suggestions for how to write and format your PHP when working with WordPress.

You can access the WordPress PHP Coding Standards here: https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/

The WordPress Coding Standards contain information around the following topics:

  • Single and Double Quotes
  • Indentation
  • Brace Style
  • Use elseif, not else if
  • Regular Expressions
  • No Shorthand PHP Tags
  • Remove Trailing Spaces
  • Space Usage
  • Formatting SQL statements
  • Database Queries
  • Naming Conventions
  • Self-Explanatory Flag Values for Function Arguments
  • Interpolation for Naming Dynamic Hooks
  • Ternary Operator
  • Yoda Conditions
  • Clever Code
  • Error Control Operator @
  • Don’t extract()

Not all of these may make sense to you at this point so try taking a read through these now and check back on them again at different points in the course.

In general you will find three general types of PHP files in WordPress:

  1. WordPress Core Files - These control how WordPress works, not edited, but interesting and possibly helpful to read through or study.
  2. WordPress Theme Files - These control how themes work and display content.  When you are building or customizing a child theme you will definitely edit these files.
  3. WordPress Plugin Files - These are used when building plugins.  If you are writing your own plugin or extending another plugin you will edit these files, but you would not generally directly edit the code of another plugin.
  4. Include Files - Small PHP files that are included in larger files appear in Core, Theme and Plugin files.  You will likely come across and write them yourself.

The Loop is a combination of a conditional statement and loop that intelligently gathers and prepares post or page content to display.

It consists of the following:

  1. A PHP If Statement
  2. A PHP While Loop
  3. A special WordPress function call to get the correct post or page (or custom post etc)

A basic loop looks like this:

```

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

      <h2><?php the_title(); ?></h2>
      <?php the_content(); ?>

    <?php endwhile; else: ?>

      <h2><?php esc_html_e( '404 Error', 'phpforwp' ); ?></h2>
      <p><?php esc_html_e( 'Sorry, content not found.', 'phpforwp' ); ?></p>

    <?php endif; ?>

```

Notice that since the PHP code is inside various self contained PHP blocks, it is also possible to use HTML inside of the Loop.

It is also possible though to have a pure PHP loop without any HTML being included between PHP blocks:

```

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); 

     the_title( ’<h1>', ’</h1>' ); 

     the_content();

endwhile; else: 

     _e( 'Sorry, no pages matched your criteria.', 'textdomain' ); 

endif; ?>

```

It is also possible to customize the Loop, which we will look at late in the course.

Now it's time to practice using PHP Loop on your own:

  1. Activate theme 1.8 – The Loop (Starter) 
  2. Open index.php
  3. Code out The Loop
  4. Use the_title and the_content to display the content
  5. Display a 404 message using _e() if no content available
  6. Open a page or post from WP Admin to test

Try tackling this on your own then follow along with me as I show you the approach I took.

Template tags are special functions that allow us to easily get information and content from WordPress.

Some popular template tags include:

  • get_header()
  • get_footer()
  • get_sidebar()
  • get_template_part()
  • wp_login_form()
  • bloginfo()
  • the_title()
  • get_the_title()
  • the_content()
  • the_author()
  • the_category()
  • the_tags()
  • comment_author()
  • the_post_thumbnail()
  • the_permalink()
  • edit_post_link()
  • site_url()
  • wp_nav_menu()

Now that we've learned about template tags, it's time for you to tackle some practice on your own:

  1. Activate theme 1.10 – Template Tags (Starter) 
  2. Open index.php
  3. Add template tags inside The Loop
  4. Add template tags outside The Loop
  5. See how many different template tags you can get working!

After you take a stab on your own, you can follow along with my solution :)

Conditional Tags are WordPress functions that return true when certain conditions are met.

Some common conditional tags include:

  • is_front_page()
  • is_home()
  • is_admin()
  • is_single()
  • is_single( 'slug' )
  • is_single( [ 'slug-1', 'slug-2', 'slug-3' ] )
  • is_singular()
  • get_post_type()
  • has_excerpt()
  • is_page()
  • is_page( 'slug' )
  • is_page( [ 'slug-1', 'slug-2', 'slug-3' ] )
  • is_page_template( 'custom.php' )
  • comments_open()
  • is_category()
  • is_tag()
  • is_archive()
  • in_the_loop()

Now that you've learned about Conditional Tags, let's try practicing writing some:

  1. Activate theme 1.12 – Conditional Tags (Starter) 
  2. Open index.php
  3. Try adding conditional tags
  4. Open page from admin or visit site.dev/category site.dev/tag url directly
  5. Might need && || !

Hooks allow you to add custom code into existing software.

Two types of hooks exist in WordPress:

  1. Action Hooks let you run your own code when certain events take place in the WordPress run cycle.
  2. Filter Hooks let you modify how content is displayed on a page or saved to the database.

Here is an example of an Action Hook in use:

```

<?php 

function my_theme_styles() { 

     wp_enqueue_style( 'main-css', get_stylesheet_uri() );

}

add_action( 'wp_enqueue_scripts', 'my_theme_styles' );

?> 

```

Here is an example of a Filter Hook in use:

```

<?php 

function my_read_more_link( $excerpt ) { 

     return $excerpt . '<a href="' . get_permalink() . '">Read more</a>'; 

add_filter( 'get_the_excerpt', 'my_read_more_link', 10 );

?> 

```

Now it's time to practice writing some hooks on your own. 

Try the following:

  1. Activate 1.14 – WordPress Hooks (Starter)
  2. Open the functions.php
  3. Try enqueueing the theme CSS via an Action Hook
  4. Try adding a Read More link to the_excerpt() with a filter

Some important points for review:

  • PHP is a server side programming language.
  • Many Core, Plugin and Theme
    files in WordPress are PHP.
  • Some basic PHP is required for WordPress Development.
  • WordPress provides The Loop, Template Tags and Conditionals to make writing PHP easier.
  • Action and Filter Hooks let us run our own code and modify data in WordPress programmatically.

A Child Theme allows you to override another theme (parent theme) without making direct changes that are lost during updates.

A Starter Theme includes helpful files and functions for building themes from scratch.  You usually edit starter themes directly, not using child themes.

Here is when to use each:

  • Child Theme - Customizing an existing  theme
  • Starter Theme - Building sites from scratch

Child Theme

  1. Reference to parent theme in style.css file
  2. Include parent style in functions.php file
  3. Copies of any templates from Parent Theme you want to modify

Parent Theme

  1. Keeps all original files unedited
  2. Before loading a file, WordPress looks to see if exists in Child Theme
  3. Can be updated without affecting code in Child Theme

In this lesson we take a look at a child theme in action.

Now it is time for you to practice making a child theme:

  1. Pick a WordPress theme
  2. Create a Child Theme for it
  3. Modify the CSS and one of the templates
  4. You don’t need to make it look better, just get it working!
  5. Demo and Practice Child Theme files 

Starter Theme Basics:

  1. Include common theme template files
  2. No CSS styles (but some include Bootstrap / Foundation)
  3. Extra functionality in functions.php
  4. Extra hooks in template files
  5. Follow modular file architecture
  6. Some include workflow tools
  7. Usually edited directly, not via child themes

In this lesson I encourage you to go practice working with a starter theme on your own:

  1. Choose a starter theme (I recommend JointsWP)
  2. Install and Activate it
  3. Make a CSS change
  4. Make a change to one of the templates
  5. WARNING: Not all starter themes are created equal

Child Theme Review:

  • When customizing a theme use a Child Theme
  • When starting from scratch use a Starter Theme
  • Also possible to start with no child theme or starter theme!

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers important topics like PHP, WordPress Hooks, and Template Hierarchy
Designed for individuals seeking to become WordPress Developers
Zac Gordon, a recognized expert in WordPress, leads the course
Course structure and topics align with those of professional WordPress training programs
Hands-on practice with building themes and plugins reinforces learning
Learners are assumed to have basic HTML and CSS knowledge

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Comprehensive wordpress theme & plugin development

According to learners, this course offers a comprehensive and practical deep dive into WordPress development. Students particularly appreciate learning how WordPress works under the hood, covering crucial topics like the Template Hierarchy and understanding Action and Filter Hooks. Many found the instructor's expertise and the hands-on projects to be significant strengths, enabling them to build custom themes and plugins effectively. However, a notable point raised by several reviewers is that a solid foundation in PHP is more critical than perhaps initially emphasized, making it potentially challenging for absolute beginners or those without significant prior coding experience. Overall, the course is considered highly valuable for those seeking to develop professional WordPress skills, though some sections may require careful attention due to their complexity or potential for slight updates in the evolving WordPress landscape.
Instructor is knowledgeable and clear.
"Zac Gordon is an excellent instructor; his explanations are clear and he obviously knows WordPress inside and out."
"The instructor's experience in the WordPress world shines through; I felt I was learning from a true expert."
"I found the lectures engaging and easy to follow, thanks to Zac's teaching style."
Focuses on building real-world projects.
"Building a theme and a plugin alongside the lessons cemented my understanding perfectly."
"The hands-on coding and projects are the strongest part of the course for me, very practical."
"I appreciate the opportunity to build my own theme and plugin by the end; it's a great portfolio piece."
"The course isn't just theory; you're actively coding and building things from day one."
Explores WordPress's internal workings.
"I finally understand how the Loop works and the significance of the template hierarchy."
"Learning about hooks was a game-changer; I feel much more empowered to customize anything."
"The course provides a deep dive into WordPress internals, explaining concepts like action and filter hooks very clearly."
"This course helped me understand WordPress under the hood, rather than just using themes and plugins off the shelf."
Some sections move quickly.
"The pace picks up significantly when covering hooks and APIs; I had to rewatch those sections multiple times."
"Might be overwhelming if you're not dedicating significant time to practice outside the lectures."
"The course covers a lot of ground relatively quickly, so be prepared to pause and code along diligently."
Assumes more PHP knowledge than stated.
"While HTML/CSS is mentioned, a solid grasp of PHP is really needed before starting this course."
"If you're not comfortable with PHP already, you might struggle with the pace and complexity."
"I wish the course had emphasized the required PHP background more clearly; it was a steep learning curve for me."
"Came into this with basic PHP and quickly realized I needed to pause and study PHP fundamentals elsewhere."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Complete WordPress Theme & Plugin Development Course with these activities:
Read 'WordPress for Beginners' by Brad Williams
This book provides a comprehensive overview of WordPress, making it a great resource for beginners.
Show steps
  • Purchase the book.
  • Read the book.
  • Complete the exercises.
Follow a WordPress Tutorial Series
Following a tutorial series will provide you with step-by-step instructions for completing a specific task.
Show steps
  • Find a tutorial series that covers a topic you want to learn.
  • Follow the instructions in the tutorial.
  • Complete the exercises.
Join a WordPress Study Group
Discussing WordPress with peers will help you learn from others and identify areas where you need more practice.
Show steps
  • Find a study group online or in your area.
  • Attend regular meetings.
  • Participate in discussions.
  • Share your knowledge and help others.
Three other activities
Expand to see all activities and additional details
Show all six activities
Practice Writing Custom PHP Code
Writing your own PHP code will reinforce your understanding of WordPress's structure and functionality.
Browse courses on Hooks
Show steps
  • Select a simple task.
  • Write PHP code to accomplish it.
  • Test your code.
Volunteer with a WordPress Organization
Volunteering with a WordPress organization will give you hands-on experience and allow you to contribute to the WordPress community.
Show steps
  • Apply to volunteer.
  • Find a WordPress organization to volunteer with.
  • Complete your volunteer duties.
Write a Blog Post on a WordPress Topic
Writing a blog post will help you synthesize your knowledge and explain it clearly.
Show steps
  • Choose a topic.
  • Research the topic.
  • Write a draft.
  • Revise and edit your post.
  • Publish your post.

Career center

Learners who complete Complete WordPress Theme & Plugin Development Course will develop knowledge and skills that may be useful to these careers:
WordPress Theme Developer
As a WordPress Theme Developer, create visually appealing and functional WordPress themes. Use WordPress's template tags to generate advanced themes that include features like blog pages, navigation menus, and custom widgets. A strong understanding of PHP and HTML/CSS is helpful to build effective WordPress themes.
WordPress Plugin Developer
As a WordPress Plugin Developer, develop plugins to extend the functionality of WordPress websites. Using the techniques taught in this course, build plugins that leverage WordPress hooks to modify and enhance various aspects of a WordPress site to meet custom requirements.
WordPress Web Designer
As a WordPress Web Designer, design and develop WordPress websites that are both visually appealing and user-friendly. Understand the template hierarchy and use template tags to integrate design elements and content into WordPress themes. This course will provide a strong foundation in WordPress development, enabling you to create professional-looking websites.
WordPress Administrator
As a WordPress Administrator, manage and maintain WordPress websites. Use the knowledge gained in this course to effectively update themes, plugins, and the WordPress core, ensuring smooth website operation and security. You will also be able to troubleshoot common WordPress issues, ensuring optimal website performance.
Content Manager
As a Content Manager, manage and publish content on WordPress websites. This course provides a comprehensive understanding of the WordPress Loop, conditional tags, and template tags, enabling you to create and edit content effectively. You will also learn to use WordPress's built-in tools to optimize content for search engines and improve website visibility.
Digital Marketing Specialist
As a Digital Marketing Specialist, use WordPress to create and manage websites that drive online marketing campaigns. This course will help you understand how to use WordPress to implement SEO best practices, integrate social media, and track website analytics to optimize marketing efforts and achieve business goals.
E-commerce Manager
As an E-commerce Manager, use WordPress to build and manage online stores. This course will provide you with the skills to create product pages, set up payment gateways, and manage orders using WooCommerce, the leading e-commerce plugin for WordPress. You will also learn to optimize your store for conversions and provide a seamless shopping experience for customers.
Freelance Web Developer
As a Freelance Web Developer, build and maintain WordPress websites for clients. This course will equip you with the skills to create custom themes and plugins, allowing you to offer a comprehensive range of services. You will also learn to work effectively with clients, manage projects, and deliver high-quality websites.
Web Developer
As a Web Developer, build and maintain websites using a variety of technologies, including WordPress. This course will help you build a solid foundation in WordPress development, enabling you to create dynamic and interactive websites. You will also learn to work with other web technologies, such as HTML/CSS, JavaScript, and PHP, to create comprehensive web solutions.
Webmaster
As a Webmaster, manage and maintain websites, including those built with WordPress. This course will provide you with a comprehensive understanding of WordPress administration, security, and performance optimization. You will also learn to troubleshoot common WordPress issues and implement best practices to ensure website reliability and uptime.
Information Architect
As an Information Architect, design and organize the structure and content of websites. This course will help you understand how to use WordPress to create well-structured and user-friendly websites. You will learn to use template tags and conditional tags to create custom layouts and organize content effectively.
User Experience (UX) Designer
As a User Experience (UX) Designer, design and evaluate the user experience of websites and applications. This course will help you understand how to use WordPress to create websites that are both visually appealing and easy to use. You will learn to use template tags and conditional tags to create custom layouts and optimize the user experience for different devices and screen sizes.
Front-End Developer
As a Front-End Developer, build the user-facing side of websites and applications. This course will help you understand how to use WordPress to create visually appealing and interactive websites. You will learn to use template tags and conditional tags to create custom layouts and implement design elements using HTML, CSS, and JavaScript.
Web Designer
As a Web Designer, design and create the visual appearance of websites. This course will help you understand how to use WordPress to create visually appealing and user-friendly websites. You will learn to use template tags and conditional tags to create custom layouts and integrate design elements using HTML and CSS.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Complete WordPress Theme & Plugin Development Course.
A comprehensive guide to building WordPress themes and plugins from scratch using PHP and MySQL. Provides a solid foundation in WordPress development concepts and best practices, making it a valuable resource for programmers.
The official documentation for WordPress, maintained by the WordPress community. Provides detailed information on all aspects of WordPress, from installation and configuration to development and maintenance.
A beginner-friendly guide to WordPress, providing clear explanations, step-by-step instructions, and practical examples. Covers topics such as website creation, content management, plugins, and security.
An introductory PHP tutorial for beginners, covering basic concepts such as data types, operators, and control structures. Provides a good foundation for understanding the PHP used in WordPress development.
A comprehensive guide to JavaScript for beginners, covering essential concepts such as variables, functions, and event handling. Provides a foundation for understanding the JavaScript used in WordPress development.
A beginner-friendly introduction to CSS, covering topics such as selectors, properties, and styling. Helpful for understanding how to style WordPress themes and customize the appearance of websites.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser