
Learn to build custom WordPress themes from scratch, using HTML, CSS, PHP, and a little JavaScript, with the Theme Customizer, custom loops, and responsive design.
Watch this tips lecture to learn how to maximize your WordPress theme development course by using the FAQ, downloading and comparing code, and troubleshooting template files with tools like diffchecker.
Install WordPress locally to develop themes, using Local for an easy, cross-platform setup with PHP versions, Apache or Nginx, and MySQL, and learn to manage the local site and database.
Explore a practical development environment for WordPress theme development, from choosing an IDE and using VSCode with PHP IntelliSense, to local WordPress setup and debugging tools.
Explore the template anatomy and hierarchy of a WordPress theme, focusing on index.php, page.php, single.php, 404.php, and the header, footer, and loop for dynamic content.
Create and activate your first WordPress theme by structuring wp-content/themes/wp-devs, adding index.php, style.css, and screenshot.png, and defining theme metadata in style.css for activation in the dashboard.
Explore the three building blocks of a WordPress theme—the header, dynamic content area, and the footer—and how index.php drives the dynamic region across pages.
Learn how to build a WordPress theme from scratch by separating header and footer into header.php and footer.php, loading them with get_header and get_footer, and using body_class for dynamic styling.
Create a theme-specific functions.php to enqueue stylesheets with wp_enqueue_style, using get_stylesheet_uri to load style.css. Attach the function to the wp_enqueue_scripts hook with add_action to ensure proper loading order.
Enqueue and test stylesheets correctly by invoking wp_head before the head tag closes. Use filemtime-based versioning for development cache busting, then revert to the theme version for delivery.
Enqueue Google fonts in a WordPress theme using wp_enqueue_style with a direct URL, selecting regular and bold (400 and 700) for the Poppins font, and follow WordPress and GDPR guidance.
Explore how WordPress theme mechanics are taught, with CSS as a base—not the design focus—using Normalize.css, CSS variables, and pure CSS with flexbox and grid for a responsive theme.
Learn how to enqueue scripts in a WordPress theme using wp_enqueue_script, create a dropdown.js in a js folder, manage dependencies, versioning, and load scripts in the footer for performance.
Register two menus with register_nav_menus in functions.php, create main and footer menus in the admin, and populate them with pages to form a responsive WordPress navigation.
Register and position WordPress menus with wp_nav_menu, style header and footer areas with a container and flexbox, and control submenu depth in a WordPress theme from scratch 2.0.
Create the mobile main menu for a WordPress theme using plain html, css, and JavaScript without plugins; implement a responsive toggle, hamburger icon, and show-dropdown behavior under 767px.
Learn how the WordPress loop powers dynamic themes by displaying posts and pages, using PHP and HTML to show titles, content, excerpts, tags, and categories.
Learn to build a dynamic WordPress loop in index.php that fetches and formats posts using template tags like the_title, get_the_date, the_author_posts_link, the_category, the_tags, and the_content, with handling for no posts.
Explore how WordPress loops power post listings and learn two page template methods: a non-reusable page-slug file approach and a reusable template strategy for home, blog, about, and contact pages.
Learn to create reusable WordPress page templates with a general-template.php approach, assign templates to about and contact pages, and control layout across pages using index.php as fallback.
Learn how to use WordPress page.php to control static pages, apply the template hierarchy, and replace index.php as a fallback for pages like home, about, and contact.
Enable and configure WordPress theme support to add a custom header, using add_theme_support and after_setup_theme, and implement header images across templates with the theme customizer.
Learn how to enable post thumbnails in WordPress themes using add_theme_support('post-thumbnails'), assign featured images in the post editor, and control image sizes with built-in and custom sizes.
Learn to add theme support for a custom logo in WordPress, set a 200 by 110 logo with flexible dimensions, and display it in the header with the_custom_logo.
Register widget areas in a WordPress theme with functions.php and widgets_init, configuring before_widget, after_widget, before_title, and after_title for blog and home pages.
Create a WordPress theme sidebar using sidebar.php, is_active_sidebar, and dynamic_sidebar. Render it in index.php with get_sidebar and ensure a responsive flexbox layout with a 30% width on larger screens.
Create a three-item service section using WordPress widget areas, without a separate sidebar file. Call three widgets (image, heading, paragraph) in page-home.php with a flexbox layout for responsive alignment.
Create and customize WordPress loops using the WP_Query class to replace the default loop, passing arguments like post_type, posts_per_page, category__in, and category__not_in, while calling wp_reset_postdata.
Fix the home page links by wrapping post images and titles in anchor tags using the_permalink, and apply the same linking to the blog page while swapping the_content for the_excerpt.
Explore the single.php template, its role in the WordPress template hierarchy, and how to build a dedicated post loop with header and footer in a styled container.
Add a comments form to WordPress theme templates by checking post or page open status, and copy comments.php to use comments_template with site-wide settings under discussion.
Learn to implement a WordPress theme search box using get_search_form in the header.php file, and create a dedicated search.php template in line with the theme hierarchy to display excerpted results.
Understand how get_search_form renders the search form and searchform.php. Learn to customize it by copying from a native theme and using a GET request to the home page.
Filter WordPress search results by post type with get_post_type and an if block, showing only posts, not pages, and handle search forms and queries with get_search_form and get_search_query, including CPTs.
Learn to enable and implement blog pagination in a WordPress theme, including setting posts per page, updating index.php and search.php, and using previous_posts_link and next_posts_link for navigation.
Master numeric pagination on the search results page and implement post navigation within blog posts using WordPress functions such as the_posts_pagination, next_post_link, previous_post_link, and wp_link_pages.
Create and customize archive.php to display posts by category, author, date, or tags, using archive_title and archive_description, cloning index.php, and tailoring templates for a WordPress theme.
Create a dedicated 404.php file to handle not-found pages, restore meaningful page titles with title-tag support, and guide visitors using recent posts widgets and a search form.
Learn to use the get_template_part function to organize a WordPress theme with template parts, enabling reusable, cleaner code and dynamic file loading.
Master WordPress conditional tags to control theme content with if-else blocks, displaying thumbnails, categories, and tags only when present, using has_post_thumbnail, has_category, and has_tag.
Learn how to use WordPress conditional tags to tailor a landing page, such as hiding the top menu when the page slug is landing-page, and test conditions with Query Monitor.
Explore WordPress theme settings, including wp_body_open, action hooks, and tags like wp_head and wp_footer, plus backward compatibility, automatic-feed-links, html5 support, and screen-reader-text accessibility.
Explore how the WordPress theme customizer enables user friendly live edits, with sections, panels, and controls, and view responsive previews for desktop, tablet, and mobile.
Create a first text field in the WordPress theme customizer for copyright, organize sections and settings, and render with get_theme_mod while ensuring sanitized input.
Discover building a customizable hero section in WordPress theme development from scratch 2.0, with Theme Customizer controls for the background image, min height, title, subtitle, and a learn more button.
Learn to drive the hero with customizer data by using theme mods and wp_get_attachment_url, set defaults, and preserve subtitle line breaks with nl2br.
Learn to customize the blog list in the theme using the customizer, with posts_per_page, category__in, and category__not_in fields, converting comma separated strings to arrays with explode in WP_Query.
Learn how to internationalize WordPress themes, wrap strings with gettext functions, generate POT templates, and prepare a translatable theme for localization.
Explore internationalization for a WordPress theme by adding translation support, using gettext functions, loading MO files with a text domain, and creating a languages folder.
Apply translation readiness to a WordPress theme using load_theme_textdomain and gettext functions (_e and __), then scan files like 404.php and functions.php to mark strings as translatable with wp-devs textdomain.
Download Poedit and two helper files, rename the pot file to the theme's text-domain, and use LocoTranslate to translate automatically from the template.
Translate your WordPress theme using POT/PO files with Poedit, preserving formatting codes and managing singular and plural translations for true internationalization.
Learn how WordPress theme security hinges on proper validation, sanitization, and escaping of input and output to prevent cross-site scripting.
Review and fix theme security by applying sanitization and escaping of input data, exploring WordPress validation tools and sanitization functions like sanitize_text_field and sanitize_email, and planning future escaping steps.
Apply WordPress escaping to outputs to prevent cross-site scripting, using esc_html, esc_url, esc_js, esc_attr, and esc_textarea for dynamic content and translated strings.
Learn practical WordPress theme security by escaping translation strings and dynamic output with esc_html, esc_url, and esc_attr across templates from content-latest-news to 404, ensuring safe front-end display.
Learn to migrate a WordPress site from local to a live server with a plugin-free process. Set up the database, configure wp-config, move files, update site URLs, and reset permalinks.
Learn to set up a WordPress development environment with Docker and Docker-compose using container images. Use WordPress images, docker-compose.yml, and optionally phpmyadmin and VSCode integration.
Set up a WordPress development environment by creating a docker-compose.yml with services for MySQL, WordPress, and phpMyAdmin, configuring images, environment variables, volumes, depends_on, and ports.
Install WordPress with Docker using docker-compose up -d, manage containers and volumes, and access WordPress and phpmyadmin locally, preserving data with external volumes.
Adapt a WordPress theme to use a page builder like Elementor for the home page without using code, using a simple loop and the_content to let the builder control layout.
Create a WordPress child theme that inherits from a parent theme, load parent and child CSS correctly, and safely override styles and templates without losing changes on updates.
Explore Gutenberg, the block editor, and how themes integrate with block-based and hybrid architectures, including alignwide, alignfull, responsive embeds, and editor styles for consistent frontend and editor visuals.
Explore the block editor's default styles and how to register custom block styles with register_block_style, wp_register_style, and style_handle, ensuring consistent frontend and editor visuals for blocks like quote and column.
Define a custom color palette for the block editor with editor-color-palette in functions.php, then apply colors to paragraphs and buttons via frontend CSS.
Explore how WordPress 5.8's theme.json enables granular color, typography, and layout controls at global and block levels, easing the transition between classic and block-based themes.
This course requires you to download Docker Desktop from Docker's official website. If you are a Udemy Business user, please check with your employer before downloading software.
100% Answer Rate! Every single question posted to this class is answered within 24 hours by the instructor.
Do you want to create a WordPress theme that really works? Would you like to learn how to edit a WordPress theme without suffering?
I know that searching the Internet for articles and tutorials is quite frustrating. But if you really want to learn everything about creating WordPress themes, you've found the right course! This course will pave the way for you to become an official WordPress theme developer.
Imagine yourself doing what you love most, whether at home or in your own company, being your own boss, and even earning top dollar! Good developers can earn from $3,000 to $15,000 creating a custom WordPress theme. So knowing how to create WordPress themes is synonymous with being able to earn very well, as this is currently one of the most sought-after skills on the market. WordPress is behind 30% of websites worldwide. In other words, it is a growing market!
If you are looking to earn extra money, or even want to work as a full-time freelancer, this course will prove to be perfect for you. It brings what I call a 'simplified approach' to the subject, because that's the way I tried to structure the course for you. I didn't have chances to learn in an easy way in the past, which is why I decided to make it as easy as possible for my students.
You won't have to go through all the tiresome and often useless research that I had to go through. Everything I learned is summarized in this course. It covers all the fundamental aspects of learning how to create a WordPress theme from scratch. You will be catapulted to a new professional level.
By the end of this course, you will have a solid foundation to become a skilled theme developer. You will be able to master a complete set of skills such as creating a theme independently, or editing a third-party WordPress theme. Take a look at what my student Walton Jones has to say:
"Three weeks ago, I knew very little about WordPress. Today I am laying the finishing touches on a WordPress site for a client that they are very pleased with. This is all thanks to this course. Marcelo is an awesome, responsive teacher who was always quick to answer my questions."
Here are some of the things you no longer need, because all the necessary knowledge will already be at your fingertips:
You no longer need to read pages and more pages of documentation to understand how to create WordPress themes;
You no longer need to waste time reading long tutorials on the web;
You no longer have to be bored looking for or watching useless content on YouTube.
What exactly will I learn?
The course will be divided into two moments.
Moment 1:
This first part will have 6 sections, in which we will create the WordPress theme from start to finish. We will talk about topics such as:
WordPress installation using Local and/or Docker. Yes, we stopped using Xampp for everyone's sake and included Local (the favorite installation tool for WordPress devs at the moment) and Docker;
template hierarchy, enqueueing of scripts and stylesheets;
menu creation, including responsive menus just using CSS, HTML and Javascript. Yes, at last, now the theme course will no longer depend on any plugin to work;
the WordPress loop, both the default loop and the custom loop (using the WP_Query class);
inclusion of several types of theme_support;
widget areas, permalinks, the main template files, the various types of pagination;
template parts and conditional tags (another new subject);
the powerful Theme Customizer;
theme translation and security. Yes, I've included lessons about security in WordPress themes (!);
site migration from the local server to a remote server.
Moment 2:
In a second moment, there will be a bonus section with some complementary subjects, which will help you understand a little bit more about the theme creation universe, as well as introduce some trends regarding this subject.
We'll talk about page builders. We will introduce you to child themes, talk about Docker, and especially about Gutenberg (the block editor and new features brought by WordPress in versions 5.8 and 5.9, such as block-based themes, the theme.json file, etc.).
This is meant to get you started transitioning from what they are now calling "classic themes" to brand-new block-based themes. The course will not teach you how to create block themes yet, but it will be a good start.
How can you tell if this course is really different?
What makes this course unique is the versatility and benefits it delivers. This course brings you 69 highly comprehensive lessons, all carefully organized in sections, leaving no important subject behind.
But the best thing about the course is my willingness to help you. My biggest priority is to make sure that you get to the end of the course with no doubts. That's why the absolute majority of questions are answered within 24 hours, allowing you to study at your own pace with nothing to get in your way.
I am sure that other courses cannot afford to have students saying things like this:
"I'm almost done with my own theme, ran in to an issue, and Marcelo has responded back with very detailed, quick help. I don't know how he does it! (...) Marcelo has laid this course out well, when you come up to a snag do everything you can to research and fix it on your own, but if you can't he's there for you. That's huge for me and may be for you, too." (Ryan Johnson)
Ok... Does this course really work?
Yes. Many students who have been through this course have already got jobs, or are self-employed earning a good income. Again, I will let students who have been through the course answer this question:
"Excellent course! It teaches in a practical and simple way, easy to understand. Teacher Marcelo is great, and answers questions quickly too! Thanks to the course I even got a job as a Wordpress Theme Developer! (Robson Henrique Rodrigues)
"One of the best courses I've done in my life! (...) Because of this course, I got an opportunity in my job that earned me a raise! I'm very happy and fulfilled working with something I'm passionate about, which is WordPress programming. I recommend this course and Marcelo's others to everyone!" (Rebeca M.)
"Today I can consider myself a Wordpress theme developer. Sometimes I can't believe it! I recommend the course to anyone who wants to start or deepen in the creation of themes for Wordpress." (Clodoaldo Rodrigues de Sousa)
"It was an extremely good and pleasant surprise to have taken this course. It exceeded my expectations thanks to the teacher and his teaching methodology. This course has, without a doubt, changed my career as a developer." (Bruno Chirelli)
"I came to this course when I needed to update a client's front end and I didn't know anything about WordPress. I got a great result on the gig, learned how to create well organized, interactive themes and significant updates to existing themes. Marcelo is a very conscientious instructor, explains in a simple way and is always willing to solve students' doubts." (Daniel Brenner Moura)
"Thank you! It was a great course, it has never been cheaper to learn so much relevant content." (Ricardo Rodrigues de Lima)
So, are you ready? You can always watch the free lessons from the course before you make your decision. Remember, this is a Udemy course, so you have nothing to lose. You can count on our 100% money back guarantee within 30 days if you don't like it. So there's no reason for you not to enroll right now.
I know this is everything you've been looking for for a long time. So enroll right now and let's start this fantastic journey together.