 I'm going to tell a little bit about what Amit was just talking about, how to use a framework and a child theme to be, well, to create better themes, easier, and with a lot more options. So I'm a big fan of Genesis, and Genesis is a parent theme that allows us to build very nice things. And I'll show you in a bit. So again, my name is Ram Khristofriis. This is, you can find me on Twitter. My company name is Forsyth Media, and I also have a WordPress related blog called WPRilm. You should check it out. Why Genesis? There's a lot of frameworks out there. There's a lot of solutions in WordPress community that will allow you to basically do what I'm telling you to do. But why do I choose for Genesis? Well, the most important reason is that when using WordPress with Genesis, you are using the best practices because you are using WordPress. And because Genesis uses WordPress the way it's supposed to be used, and that gives you endless possibilities. Possibilities because, you know, when you build your theme, your parent theme like WordPress is being built, you don't have to worry too much about breaking stuff when WordPress updates or when other plugins who also do it correctly, like Gravity Forms, for instance, you don't have to worry about updates messing around with your theme. So Genesis Framework, what is it exactly? Well, it's a framework, it's a powerful WordPress theme that acts as a design security and SEO foundation for your site. So it's basically a theme. And within that theme, all this is already taken care of. So you don't have to reinvent the wheel. It's already been done for you. And it will allow you to separate your design from your code, from your functionality. It will allow you to have SEO part of the theme from the get go. So why specifically Genesis? In my experience, and even though I've been using Genesis for the last couple of years almost exclusively, I do check out what the competition has to offer. But in my experience, Genesis gets updated quite regularly and is in better sync with WordPress. Safety first is a big motto. And like new WordPress functionalities are automatically added. So like when post formats were introduced, all you had to do is upgrade Genesis and all your existing themes, even if you built them two years ago, they will still have the ability to add post formats like they are supposed to be. Best practices for SEO are already implemented and, well, stable, stable, stable. Because you want to have a framework that is stable. You want to create it. You want to leave it. And if you don't touch it for another year, that should be fine. And all the WordPress updates shouldn't mess around with whatever you have created. Child themes. I already spoke a little bit about child themes. Well, Matt Mullen, the co-founder of WordPress, said it very nicely. He said child themes are the only way you should build your WordPress site on top of a framework. So like I said, WordPress is built to be used like this, to be used in conjunction with the framework. So really what does the child theme do? If the framework already has all the functionality, all the design in very basic layout already taken care of, what does the child theme do? Well, it sits on top of that framework. It handles all the design and all the layout aspects of your site. So colors, layout, topography, extra functionalities, anything you can think of that is extra in comparison to the default framework, that's what you do in the child theme. So you don't ever touch the code of Genesis. You look at it, you learn it, but you don't touch it, you don't change it. So how to make one? Well, this is a bit of repeating what Amit said, but all you have to do is create a folder inside your themes directory with the name, create a style sheet, create a functions PHP file, and have a Ceresa. What does it look like in case of Genesis? This is actually the one you're seeing now is the one, it's publicly available. It's the one we use for WP Realm, and it's based on Genesis. And as you can see, it states the normal things, theme name, URI, description, author. We added versions, but the important one is the template tag that says Genesis. That's telling the theme that, you know, for all the functionality, look at Genesis, but the rest is done in the WP Realm theme. So this setup, this separation of framework and child theme allows us to go from this, which is the default layout of Genesis. This is how it looks. If you don't touch it, if you don't change the child theme, this is it. But you can make it look like this, which doesn't look like Genesis, doesn't look like WordPress, I hope, or maybe I should be proud of it, I don't know. But what you see here is a very custom home page. It's got nothing to do with what Genesis normally looks like. So you can make it look like this, have sliders, custom functionality. The orange bar that you see is calculating based on your postal code and a radius of kilometers, you can find the jobs that are closest to you. This is a site that, you know, uses WordPress to host jobs basically for the postal company in the Netherlands. So another example, again, it really doesn't matter what example I show, pretty much any design or as far as your imagination goes, you can create a child theme of. So, how? Who here has ever created a child theme? Who has ever created a child theme? Raise your hands, please. Who doesn't, who didn't know what child themes was before today? Rafa. Okay, but, okay, so you know, the idea behind it is that you learn whatever platform you work with. So the first thing we work with is WordPress. So how many of you look at the code what WordPress actually does? Okay, a few hands. So how many of those, how many people here are developers are creating code? Okay. So the how is, again, it's very easy. You change the default style sheet to whatever you like. You don't import. Amit was showing a version where you import the style sheet for 2010 or 2011, it was, I think. But importing is a little bit slower. So ideally you want to start out with the style sheet, the default style sheet of Genesis which has everything in it and you put it in the style sheet of the child theme itself. So from here, you just change what you need to change. If you want a different header, you want an extra, well, you know, anything you can think of, that's what you do in that child theme. You override the default functions. Now one important thing about learning how to play with Genesis is that all the functionality has been brought back to small little functions. And those functions, they hook into places that either Genesis creates or WordPress already has created. So when you look at the HTML structure or, for instance, this one, it's clear to see what the header is. But within the header, we have a top navigation and we have the normal navigation. Now because they are functions, I can write, well, I can unhook the navigation at the place that it's currently at, which is Genesis after header. And if I want to have it on top, I change that to Genesis before header. And that's two lines of code. And that's the only thing you have to change. And Genesis will take care of the rest for you. So if you look at the default layout, you'll see that when you look at the post, you'll see the sample post within threaded comments. You see below that, you see the post info which says, you know, it's created on September 1st, 2012 by Brian Gardner and it has six comments. So what if you don't want to show how many comments there are? Or maybe you don't care about the date. Maybe you want to have a timeless thing going on. The idea is that instead of having to go to every single template file, you change the function output. So if the function output by default is post info says use the post date, post time, post author and post comments and you just want to show post author, then you adjust the filter in the way that you just say okay, whenever there's a post info output, only show the post info. If you'd like to have extra functionality, like the one I showed you with the orange search button, you would do that just the way you would do that with your normal theme. You create a library and within that library, that's where you logically house your code. You structure it as much as possible because that's basically keeping you sane. So what does that look like in the example of WP Realm? You see that we have in on the left you'll see WP themes, W content themes and you have the Genesis framework sitting on top and at the bottom you see the child theme of WP Realm. Now if you look inside the library you'll see there's a bunch of stuff going on. We have stuff that's specifically for admin. We have custom fonts. We have HTML stuff that needs to be in there. We have JavaScripts. We have markup things. We have metaboxes. We have specific plugins that we only use for this site and there's in this case two extra resources and sketches which you don't normally use but that's the way that it's set up. What this does is just create a good solid code base and a good folder structure. So what you need to properly work with WordPress is to learn about hooks, actions and filters because that is WordPress. You may not know it but every single plugin that you activate is doing nothing more than this. It's manipulating, it's adding or it's removing. But it does it through the hooks and the filters and obviously the actions. So I'm told this is how you... So to learn about hooks, actions and filters is to learn about WordPress. Should be a capital P? Damn it. Fran helped me. I can blame him. But really to know... I know a lot of people are accustomed to, you know, you want something changed on your site and the first thing you do is you check for the plugin. And if there's a plugin found, you activate it and you're done with it. Yeah. Yeah, some are even happy about it. Honestly, if you want to be a better developer, if you want to be... if you want to understand what you're actually working with better then you ought to do yourself a favor and check out the codecs. Now you may not be the best programmer but you don't have to be. You can read. And I assume since you're all working with WordPress and that English reading, speaking... reading, you all can read English. So checking out a codecs to see what that thing that WordPress installation is actually doing is actually helping you understanding better how you can manipulate WordPress to whatever you would like. And in the end, that's going to reduce your time working with it. You learn to make quicker decisions because you know what the product actually does. So to learn about hooks and acts and filters is to learn about Genesis because Genesis works the exact same way. Doesn't reinvent the wheel. Doesn't do any funny stuff. Just does what you expect it to do. But does it really smart, really fast, and really secure? So just to give you an example of what a hook is that Genesis adds. There's places. I can't help it. I feel special. You all probably know that in your header you have WP underscore head. That's why you add stuff like Google Analytics and... better? I can't reach it. Better? Then I'm eating it. Oh, yeah. So Genesis before is what it says. This hook executes immediately after the opening in the document source. So right after HTML, the declaration, that's where you can add stuff. Genesis after loop. Right after the loop is a place that you can use. And if you need to output code, if you need to change something there, that would be the place to use. And Genesis before header, I gave you that example earlier. When you want to move the navigation up one bit, then you use, for instance, that hook. How to use a hook example. This is an example of what a function would actually look like. So the function really, all it does is remove the post title on the specific quote post format. So if the post has... sorry. If the post format is quote, remove the action, Genesis post title, and at the location. And then else, because it needs to add it back because otherwise it's going to be gone on all of them. And when you go all the way in the top, you see the add action. So the function I just created needs to be added to Genesis before post because I want that specific code executed before every single post. So how to use a filter example. Genesis comes with six different layouts. Now, for instance, let's say we use the default of content sidebar. But for the home page, you always want to use full width for whatever reason. This would be a way to create, to override a filter by stating that we need to use the value of full width content. So it's, you know, anybody familiar with a little bit of code, this shouldn't be rocket science. And if you're curious, there are a lot of resources about Genesis. I think in the Genesis framework is the most popular one because it's the most solid one. But I also believe it's the most written about one. There's a lot of people doing very nice and nifty stuff with Genesis. Obviously, I'm one of those nifty people, but there are more. So if you look at the Genesis tutorials, Genesis plugins, and you have like Nick Croft, Bill Erickson, Gary Jones, those are people who do a lot, but share a lot as well. Now, when you go to GitHub, anybody have a GitHub account? Just Google for Genesis and you'll see a lot of solutions are already out there. There's a lot of gists being used to demonstrate how you can manipulate or do things that, you know, you don't have to invent the code for. Travis Smith of WP Smith, also a very good resource on Genesis. Now, you can actually, you have to buy Genesis. That's the only caveat. You have to buy it because it's a premium framework, but you only pay $60 once and you can use it as many times you want for the rest of your life. So it's a very small investment. But the WP Realm theme is available on GitHub for you to check out, to learn from, to help improve. And obviously Google is your friend as well. If there's anything you'd like to do or change or want to know about Genesis, you can obviously ask me, but there's a lot of room for your Google capabilities. So I've tried not to go too technical, but I'm, you know,