Genesis gives us the means to fully customize it because it utilizes the event system available from the WordPress Plugin API. Throughout the codebase, you unregister events to remove a component, register your callback to change something, or re-register an event to change its order or location. You need a solid understanding of the Event Registry system in order to customize Genesis. Let’s do a refresher here. You can accelerate your proficiency with the Plugin API using these video-based Docx as they thoroughly walk you through each construct: add_action remove_action add_filter remove_filter do_action apply_filters
Labs
Labs are hands-on coding projects that you build along with Tonya as she explains the code, concepts, and thought processes behind it. You can use the labs to further your code knowledge or to use right in your projects. Each lab ties into the Docx to ensure you have the information you need.
Each lab is designed to further your understanding and mastery of code. You learn more about how to think about its construction, quality, maintainability, programmatic and logical thought, and problem-solving. While you may be building a specific thing, Tonya presents the why of it to make it adaptable far beyond that specific implementation, thereby giving you the means to make it your own, in any context.
The Intent of the Theme
What is the intent of the WordPress theme? What purpose does it serve? How is it different from plugins? A theme’s intent is to prepare and render out the HTML, i.e. content presentation. It handles the process of building what is needed to head out to the browser. In contrast, plugins are meant for extending or changing behavior and functionality. Features such as custom post types, taxonomies, widgets, shortcodes, etc. all go into a plugin. Plugins may even have their specific template files; however, styling is still a theme responsibility.
The Intent of HTML and its Markup
The intent of HTML is to provide structure and meaning for your content to be read by other software, such as the browser, screen readers, and web crawlers. While humans can read content even when it’s not well-formed, software needs a set of strict rules in order to parse it and do its work. Software is not intuitive and cannot read your mind or intent. It needs to be structure and a set of well-formed, strict guidelines. HTML provides this for us. The intent of markup is: to give you anchors for styling to give JavaScript anchors to traverse, target, […]
Web Page Sequence – in the Code
Next, let’s go into the actual WordPress Core, Genesis, and the child theme code. You will see the order (or sequence) in which files are loaded.
Web Page Sequence
Let’s do an overview of the web page, from its web request and back out to the browser. You will see the order (or sequence) of how the web request is processed, in a big picture view, including how the theme’s functions.php file and template are called.
The Why of the Genesis Framework
Genesis is my theming framework of choice because it is built for the developer. It allows you to customize everything without having to rewrite large sections of code or recreate template HTML structures. It is modular and complies, for the most part, to clean, quality coding standards and concepts. It is easy to read the codebase, which helps you to find what you need and then get on to writing the custom bits. Let’s talk about the why of the Genesis framework from the professional developer’s perspective.
Lab Introduction
Let me introduce the lab to you to what you will be doing. First of all, this lab is meant for the professional developer, the person who wants to know the Genesis codebase, as you will be exploring and reverse engineering the actual source code. The intent of this lab is to introduce you to the Genesis framework, its architecture, event hooks (actions and filters), the child-parent relationship, and more. You will look at the HTML and markup that is generated by the framework, explore the hooks that allow you to customize everything, and get a solid foundation before you […]
Overview of the Genesis Framework – Developer’s Guide to Customizing Genesis
In this hands-on lab, you will be introduced to the Genesis framework, its file structure, codebase, and developer-friendly customization features. You’ll walk through its source code and be introduced to the Genesis-way. You’ll learn about why the child-parent paradigm promotes clean, quality code.
Where does Genesis load the style.css file?
In this episode, you will discover where in the Genesis framework does it load the child theme’s stylesheet style.css file.
Asset Version Control using the Genesis Constant
The Genesis framework provides you with a constant, which you use in the child theme. This constant defines the theme’s version. That version is then appended to each asset during the enqueuing process. In this episode, you will take a look at how this works.