 Welcome to week two of Form of Awesome, right? So we will be doing some, what is called, a bit of Gravity Forms Flair with Tom Woodward. Tom, welcome back to week two. Good to have you back. It's good to be here, good to be here. Now we wanted to change up the format because this is the second week and the assumption is, and this may be a big assumption, but the assumption is that folks have played around a little bit with Gravity Forms. And so what I'm gonna do is I'm gonna put an invite link to the, to into StreamYard. So folks can feel free to join us and basically share anything they've worked on or whatever. And I do wanna kind of start on that just to kind of get focused in the mood, so to speak, to see that even someone as challenged as me can play around with Gravity Forms. So I'm gonna show you a little bit of what I worked on over the last, basically just this morning. And my experience with Gravity Forms is I've often watched Tim and Martha or even Lauren and Meredith mentioned they've been working with it, do this stuff, but I've always kind of sat on the sideline. So this morning was really the first time I really dug in and played somewhat extensively with it. And it was kind of nice. So let me show you what I am looking at. So give me one second. I'm gonna, ready? Hold on, see this? That's nice. You like that? Okay, so let me see if I can share my screen. I'm gonna go here and then you should be able to see this stuff behind me. So what I'm gonna bring over right now is my very basic form. And I love any advice you can provide. My dog is excited about my form. I'm excited about my form. So let me go to that. So my test site is this one. It's a library.BabaTuesdays.com. And what I'm gonna be doing is I'm basically built a small form where I'm gonna have a whole bunch of media coming over from America, basically from my move to Italy. So I wanted to try and catalog it all. So this is a very simple catalog. That's what I wanted to build. So I've been playing around with it. So I'm gonna try one here where I'm gonna say the book is Sound and the Fury. And I think it came out in like 1928 or thereabouts. I'm not sure if I'm gonna say 28. And then I'm gonna keep it as a book and you'll notice that's that, right? Nothing else changes. But if I were to do it as the Shining and that came out in 1980, right? And I only really worked with the movie format so far and say I have it on VHS, which I do. I can actually say now what region? Is it PAL and TSC or some other region? So PAL, what's the running time? It's 117 minutes. And then the actual film genre is horror. And for me, this is pretty cool because I'd never used conditional logic. And when I was playing with this this morning, one of the things I quickly realized, and I'm gonna go to my forms area now, gravity forms, is that what I realized, which was pretty cool, was that I was trying to do conditional logic on media type. So I was going to media type and I was going into conditional logic. And I was like, enabling. And I was like, but I don't see media. Like media type is not an option. But you said in a comment on a blog post I wrote about that, that it's always kind of retrospective in that when you click on this and you go to conditional logic, it's at that point that you can define the media type, the different choice, and then decide if any of these is the case, show these fields. Which was really kind of nice for me to finally understand how to kind of create what I consider a more complex and richer field than what I had done ever before. So it was pretty cool for me to kind of play with this gravity forms and figure out conditional logic. And then a couple other things like I changed the asterisk for media type away from required. And I used the custom CSS for like red alert. And so now it's just an asterisk with a red asterisk thanks to the CSS class that I used. And just some other pretty basic stuff, obviously, this is not our shattering, but I feel now I have the template for a library catalog for all the media that I've been collecting. And it's gonna just be for me so I didn't need to paginate or do anything like that. But it was pretty kind of fun to do it. And I feel kind of accomplished that I could do it. And I go, oh, this is great. I was able to do it. So anyway, that's the project I've been working on is this kind of analog media. And I'll bring you back here, Tom, we go here. And I think we have a guest. I'm gonna bring this guest in. This is Reclaim Hosting's own Meredith Fiero, big fan. Hello. Hi, Meredith. Now I'm gonna, okay. We have your screen up there too, by the way. Okay, cool. Can you all hear me okay? I'm just trying to check the mic really quick. Perfectly. Okay, awesome. So I actually ended up doing three forms for just copy and paste into the site itself. And then I wanna work on doing more conditional logic and then pulling in the Slack integration and everything like that for two internal Reclaim Hosting ones, which is this high value contract info form itself. Pilot and I have been working on a internal workflow where we hand off any completed domain of one's own projects or managed hosting projects to the support team as kind of a way for us to get some information about the contract upfront. So we kind of know what to expect. And so we created a Google form to accomplish this. But I figure having it in gravity forms with an easier Slack integration would be super helpful because this goes into an internal channel and everything. So this is what the Google form looked like at first and it used a ton of conditional logic. You're getting a request, Meredith, to magnify your screen a little bit. Yeah, of course. Is that better? How should be better? I can zoom in. Yeah, and I would zoom in here too. Perfect. So with this one, each section is broken out based on the type of contract. And I kind of replicated that a little bit on the WordPress side. I missed domain of one's own. So that conditional logic is not there, but I have to go back in and make sure all of that's good on that side. And there's just project URLs, anything we'll need on the support side to help everybody as they're getting started. And then this next form here is our new client information form. So when users request to maybe move their shared hosting account into someone else's name or move like a domain registration and that sort of thing, we have them fill out a form. So we have all the information up front for a billing system. So I just kind of replicated that form there. This one looks like this in Google Forms. So and then finally, a more personal project. I wanted to recreate a recipe form submission from a capstone project that I did at Mary Washington that I inadvertently deleted the site for back before I realized the backups were gone and everything. So I wanted to recreate all of that to kind of for posterity's sake on that side. So, but this is what the site looked like. I had a little screencast going of the form. And it was a little like social media site in the background on that side. So I just kind of... You used Gravity Forms when you were at UMW. I think so. I think this was built in Gravity Forms. I can't remember. And I couldn't find a blog post in it on the archive, but I think I did. And then Custom Views and Post Type threw another sort of plugin. So I wanted to see if I could filter out based on the category on that side. So I have the category checkbox down here for like a barbecue recipe or like what type of cuisine it is. So I want to kind of filter out like that, like kind of what you're doing, Jim, with your VHS and media submissions and all of that stuff. So you came here not with one form, but with a different one. It just happened to be three and it more was just copy-paste. I'll be honest. So... I'll tell you, my experience, one of the cooler things I found is that I went in and I had to create like film genres. One of the form elements I wanted or I guess you would call it, I'm trying to get terminology down, like a specific field was, you know, film genres. So I went to a site that had all the film genres. I copied them and then I just pasted them in a list like a basically like a radio button list. It was the easiest thing in the world. Copy-paste, I have, you know, 17 genres to choose from or whatever it was. Amazing. Yeah. By all means, whenever it's like a choice list of something that you're pretty sure someone else has thought about, like Google it and look for something to cut and paste. And I often will even throw it in a spreadsheet thing. You know, if I need to clean up the data a little bit. So that's a trick that I use often. You know, but yeah, don't ever find yourself writing like a list of the countries. There's a bunch of built in ones too that you can take advantage of. So one of the questions I had and I wonder Meredith how your mileage varies with this is, so there's like, you know, I'll bring it up, I'll bring it up behind me just so you can see it. But like there is, and so that means they're gonna get small again. So hold on, I'm gonna have to snap my fingers. Ready? God, it works every time. So this is like dad jokes on, you know, gravity forms. So here it is. I was actually struck by, let me go to this because I think it was kind of interesting and it's very here. Like you have standard fields. So I'm gonna get rid of myself all together and I'm gonna be make my screen bigger. So you have standard fields, right? Right here. And then you have, well, let me go back, sorry, let me, let me go back into the form clean so you all can see what I see. So you have standard fields, you have advanced fields and then you have post fields. And so when I was first working in this, I was getting a little bit confused in that, like what a standard fields, where are they gonna take me and what are they gonna give me? Advanced fields obviously are more definitively structured fields like address, email stuff, you use Meredith very well for the form of people moving over. But then I knew post fields because I know WordPress. So like, if someone were to say, like why use a standard field versus a post title or like, you know, at first I was like, maybe I'll take all my stuff and I'll bring it into WordPress as a post. But then I was like, you know what? That's probably not very logical in the end because I wanna actually have something we can use. So I would be interested to know like, how do you explain the differences of those three things? You know what I mean? So those three types. Yeah, so I think if you have the advanced post plugin, that additional gravity form thing, like the world is very different in terms of your options. And so in that scenario, and I'm gonna use it because we all have access to it. The difference is really this. Let's say I wanted to use categories. If I use categories and say list all categories from the post field categories, then any changes I make in regular WordPress are automatically gonna happen there. That could be a good thing, could be a bad thing. Now I could make a more constrained list like for your film genres. Say film genre is one thing I wanna have a category for. Maybe I wanna do a tag for director. Maybe I want a different category for, I don't know, device type or like you said, PAL format or whatever that thing was. So in that case, maybe I'm at the level of three categories really, and I want constrained sets for each one. Then in that scenario, I definitely suggest using just the regular field pieces and using advanced forms to do the more complex mapping of that than the categories or other custom post data types. That way like there's less stuff that goes wrong. There's more control over it. You can manage it a lot more easily I think and any category or thing that needs to be created on the fly from that submission process, it happens on submission. So you don't have to make, you don't have to go ahead and make the categories to have them show up. You can just make your list and each time somebody submits, it creates the taxonomies that you need on the fly and they're still there and you can still mess with them. That's another advantage is down the line. If you needed to change the categories, having it as a taxonomy can be really beneficial but you have to remember to go back to the other thing and change it there too or it's gonna try and make the old category again. So in other words, you would recommend for something like media format or media region like PAL or NTSC or whatever you'd say probably better as a category than as a simple field or whatever I'm using right now. Yeah, that's one of my things. And it's just me, I'm always like, well, if it's a category, I can show it on the post if I want to as tax, so it's there. I can see it always. But if there's ever a weird scenario where I wanna see all horror films greater than 107 minutes in the PAL format like I've got the data, I can make that query. And that to me is like with that particular type of thing with recipes, it's always like, how might I ever wanna like find a thing through a combination of the ways I'm thinking about it? Yeah, no, that makes a lot. And that's very helpful because when I saw those three options, I was like, which one is the best to use? And I stayed away from post elements because I was like, maybe all this data I'm collecting will then show up in a post and that post will just be like the container for this data. But I need to think about a little bit like the post itself can also be metadata for certain things around the media type that I wanna use. So start thinking a little bit like, because you said tags, categories, et cetera. How do you think about that? So if you were to do a library like this, why would you make a director or a tag versus a category? Because it's only one, you don't have, you can't have a full list of all directors, is that right? Right, right. Yeah, it was a matter of control and scale. So one of the things that's unfortunate is by default, you won't have access to the autocomplete tag library. I don't think on the front end. So if you have Wes Anderson or something and you start typing Wes, it's not gonna autocomplete in the gravity forms piece on the tag element. So tags just generally come with that hassle of the folksonomic thing. Categories to me are always the contained, possibly hierarchical, the parent-child stuff. And then these days I do a fair amount of just custom taxonomy because it helps me down the road with the way I do searching. So like Ed Beck's example the other day, I guess in the WordPress piece, where he has the different chunks of data, like that's how I think it through. What conceptually how would I wanna group the data? Do I need custom taxonomies to make that easier to understand or to see or to do? And then how do I display it on the actual post itself? And I found to the tag side of it was actually a bit confusing for the folks that I used on the previous site for the recipes. So having that category option is easier so they can see it in front of them versus coming up with their own. Right, always and forever. If you can give people the thing to choose from, they'll be happier and more likely to fill it out. Like tags still for many people, like they just don't work in their head. It's just like not how people think or they'll like add hashtags and do weird things that you can't expect. So my general thing is if it's for the world as few choices, free entry choices as possible, which is, you know, I don't think depressingly sad, it's just experience. Like it's just the way it is. I'm not sad about it. Oh, I can't hear Jim. Yeah, Jim, I think you're muted. Sorry, yeah, my stream y'all was smart enough to tell me as much, but now I'm starting to think like, so you have obviously romance as a genre. Let's use film genres as an example. And then as a subgenre, I might have like romantic comedy or even as a mashup genre or, you know, go on that vampire romances or whatever you wanna go, wherever you wanna go with that. So can you, when you're doing genres, even if I use categories, like as I discover a new category, like slash or horror, can I create on the fly? Even though this is only for me, so it's kind of a silly question or rhetorical, but like at the same time, could I set it up so that people could create either their own category or own genre and own subgenre using categories as a way to kind of do the child thing? Does that make sense? Yes, and you can do it, but probably not in the same form field. So I don't think it has like a ad type of thing. I get confused sometimes because I use advanced custom fields to do something like this. And I know I can do the creation on the fly within the same field there. In this scenario, probably how I would handle it is I would do my regular categories and then I'd have a field that's just like, after it, that's like, do you need another category or something like that? And it's then available as a free entry form. And if I'm linking to all the categories on the one above, after that, it's now part of that piece and we're good to go. So in that way, you could be kind of like incrementally building the taxonomy structure while still having that consistency piece. So consistent categories or genres, but then Mr. John Run added here a separate field, but the same idea. Right. And that's where an advanced post-creation thing, we just map that thing to categories and bam, it just creates it on the fly. It's so, so nice that way. So let me ask you a question, you brought it up. And anyone else who does wanna come in and share their work, maybe Meredith did it for everyone because she had three forms. But like the other question is, you brought up advanced custom fields. Was that right? And advanced custom fields is a separate plugin. Right. And you use it in tandem with Gravity Forms. Sounds like, does that make sense? Yeah, at different times for different things. Like, you know, it's a, the nice thing about Gravity Forms is you can use it in isolation with any theme kind of on the fly. Advanced custom fields, you start to get more into the world of like having to build out the theme to support it, showing any of this data or doing anything with it. So it's a move into greater sophistication and, you know, greater hassle. But, you know, it's a tool in the belt. And you can do some form like behaviors with advanced custom fields. Sometimes I choose Gravity Forms. Sometimes I do that. It depends a lot on who's in control of the form and what level of control I want them to have. So Gravity Forms I always like, because I can put it in the hands of most people and they can alter, change, evolve it as they need. Advanced custom fields, not gonna happen that way. Like you, you get to change the form stuff. You have to know PHP and you have to understand their structure of like making stuff happen. So it's a little more complex. Oh, that's super useful. Just even the distinction of that. Because I hear you talking right about both of them a lot, but hearing like how you would, what your rationale for using one versus the other is super useful. Meredith, anything else? I don't, but Ed Beck did have a question in the chat. When would you use a custom field and when would you use a category? All right. It depends on the user interface slash user interaction side what I want to be possible. It's much easier in most themes that are built to kind of interact with the standard taxonomies like categories and tags. So if I'm trying to sort or display things, I'm sticking with categories and tags. Custom fields until you express them are hidden, right? So like I could attach all sorts of data like to let's say Jim's media thing, we put all that data into custom fields. Cool. Unless we do some stuff on the theme, no one can see it. Even you won't see it unless you go up to the interface and click show custom fields. So you won't even see it on the backend unless you do that. Because WordPress is kind of hidden more and more of these things even from the administrative use. So custom fields plus they're harder if you're programming to do a taxonomic sort on a custom field versus a category or tag. Like if you're doing a query for things that meet certain qualifications, that would also come into play there. So I don't know, does that help, Ed? I think it does. I just removed Meredith. Meredith is not a personal. It's purely forms of awesome business, just so you know. But I think that, yeah, I think that was answered. I don't see Ed following up on that. So if he does, I will definitely, luckily Meredith did what I should have done, been scanning Discord. But I was fascinated by, because again, I heard you talk about it. And what do I refer to it as, ACH, right? I referred to it as like a direction where my mind is like a bank deposit versus advanced custom fields. Now I'll never forget it, ACF. All right, well, I do think if anyone else does want to share just let us know in Discord and we can always bring stuff on. But I do think that, and he does say it does make sense. So Ed does agree. But I think we should get started. We're just about on time. With this week's gravity forms flare. And I'm very interested to see some of this flare. So I will remove myself from the screen, but I will jump in as needed and share questions and the rest. So take it away Tom, big fan. All right, awesome. So hopefully everybody made some progress and is feeling happy. If not, please I beg of you. Say something in the Discord piece. Write me individually. You can find me on Twitter, et cetera, et cetera. But yeah, speak up. And I've been throwing some extra stuff in there maybe to help provide some guidance. And if there's anything you particularly want to see me cover again or do some more on or whatever. By all means, throw something in there because I want to make this stuff work. So what we're going to do here is I think focus mainly on creating some posts because I think that's where people are looking to get into some action. So I'm going to do a slow version, but first I want to show you kind of an example. So this is going to be a fast tour. And then we'll go back through it and kind of piecemeal some things together. So some of you may have seen Wonder Twins conundrum, right? Which was just me being stupid and saying the Wonder Twins have a challenge. And in this, you're going to submit two different pieces of media and a rationale. And then when you submit it, it's going to redirect you to this page where it's kind of mashed those things together and it's laying out those posts because that's what these are. These are just posts and this is the body content. All I did to make this happen, oh, thank you, Jim, is on submission it redirects to a URL, which is this. And on this page, this is one of those little things. In this case, I'm using the classic editor and I am using a short code, good old display posts, which I've used for hundreds of years. I think at this point, and I'll throw the URL in there. Display posts is still one of my favorites. I think Alan Levine got me interested in that one originally, but it's the idea that I can just take a post page and then stick the short code in it and set whatever rules I want. In this case, I'm automatically tagging that post Wonder Twins solution. And then I set a couple of rules about like, hey, how many should I show and blah, blah, blah. Show the content, et cetera. So let's look a minute at the guts of this form. So this is Wonder Twins. I could use that to show all the posts that are like formatted as PAL versus. Yes. Yeah. So just boom, you pull them right in, that's the page. All PAL parts of my collection see them here. Well, what you could do, Jim, for instance, is on redirection, depending on which format you took, you could work it in as the URL variable. So if I submitted a PAL thing, it would take me to all the PALs. If I submitted a whatever other thing, it could take me to a different page so we can work those variables into the URL that it redirects to. And bam, you've got a way to take people to the things like the thing they submitted. So. Beautiful, I like that. Yeah. I really like that sort of thing because it just gives some nice things. And of course, you can do all this stuff in the block editor in a variety of different ways. I have the classic editor on here because later on I'm hoping we'll get a little bit into the HTML and it's a little bit easier to see how that works in this thing. And then we can talk about like some options with the block piece. But let's take a look at this form. So I just wanna show you what I'm doing here. I've just got media upload fields. So when I click on it, you can see it's showing me this is the ID one for this field and it's a file. I've limited the file extensions to these particular images. And that's all that's happening there for these first two. Now, note here I've got a hidden thing called post title. That's from one of the post fields. Nothing too exciting there. I do, I am here creating a content template. So I selected this, we're looking at field settings. And then right here it gives me the option to check and create a content template. And cause I didn't want people having to come up with a title for these things but I thought it'd be nice to have it change. So all I did is say wonder twin solution and then I used one of the variables that's available to me called entry underscore ID. And that just gives me a number of whatever entry that this entry is in the gravity forms entry list. And then finally, we got a rationale which is just a big text box. All right, so because I have advanced post creation triggered here, I'm gonna see it as an option here under settings and it's called post creation and I'm gonna click on it so that we can see what's going on. These are the post creation feeds and you can make multiple ones for a single form. So you could have one form create 20 different posts of different types and different pieces if you wanted to. I don't know when that would ever happen, but it's possible. And let's look at what's going on here. So I named it, named stuff clear things. And the flexibility here is super nice because it's basically all the choices you have in WordPress post creation like I could make this password protected and then it's gonna ask for the password. We don't wanna do that, so we'll put it back. I can decide which type of post it's gonna create. Right now I have no custom post types so it's gonna offer me a poster page. If you look at one of the pieces I posted in the channel about doing gravity forms to event calendar pro, I would have event as a custom post type here and that's what I would choose, but that's super nice because these things are built on the fly and kind of work together that way and this automatically picks up the post types that you have on the site. Again here, you've got the same choices that you would have in a regular WordPress post. I don't know why you would post something directly to trash but you can, which is kind of exciting. No one uses these either, I don't think, the format so that's probably standard. You could set the entry date. This I've actually used before so like if I was doing a timeline piece and I wanted people to be able to set the timeline in the past I might map this to an event calendar piece in the form and be able to set it to like historic events that people choose and then my posts would look like they were coming from that time period which is kind of fun. You can set the author too to be whoever's logged in submitting the form or you could set it to somebody particular to the site. That's just always the case. And then again we've got this sort of thing. So I'm gonna take a breath there. We have any questions about the main pieces before we get a little bit into templates and like I said, I'm going through this fairly fast and then we'll kind of go through it bit by bit. I don't see any questions in Discord although yes there is a suggestion but I don't know that's the trash I guess. But one of the things I just want to ask here is so we looked at the form fields this is a different interface to what I saw when I was gonna add specific post elements. So can you just where you started explain quickly how is this different than a form? This is really just a form that creates a post with all the bells and whistles of a WordPress post just built into that, is that right? Right, historically, and I'll go back to the days of your right like this extended thing didn't exist. So the only option you had were the post fields within the regular form interface and they were limited in a variety of ways. Like it was hard to use like you couldn't put categories in two places with two different lists of categories. You couldn't control a lot of these elements through that form interface. You could just kind of do basic stuff. It was good but it wasn't kind of the full pantheon of choice. And then this advanced post creation thing came out and really if you want to you can pretty much ignore all the post things on the regular gravity forms interface just make your form using any of the other fields and then map all the stuff together here. This gives you a lot more sophistication. I think in the end more complex things absolutely do this. If you're just doing something dead simple and you don't need all this stuff, great just use the form fields but anything of complexity I really suggest using this instead it'll give you more control, more options. And then down the line you just have a lot more things going on. So. That was great thanks that gives me a sense of how it's different from those post fields I saw on the original form and I like that. Yeah, it's weird. This is what they do. They're almost like secondary actions is the way I would think about it. As you can see mine I have a couple of different advanced plugins activated here. I post creation, I have Slack integration, I have user registration, I have webhooks. And that's kind of what I would say is like think of these as power up packs where like they're not gonna muddy up the regular form builder with this level of sophistication. So they put it out here and you can associate it with any of the forms in your site but it's that next level elevation that would really just have made the form like too complex to understand what's happening. So make your form normal. Now we'll go here for the power up to do a little bit more sophistication with that data. Perfect. And I just wanna, this is, I don't want this to feel too intimidating. I don't think it's terrible but what you can see is again we're dealing with the merge fields. And so my rationale right there is there. And all I'm doing to find these, as you see this little thing there, it looks like this one, curly brackets with two dots. It actually looks a little like a Lego man's head sort of to me. You can click on it and these are your form fields as well as other stuff. So there's a lot of things in here that you can choose from but it's definitely gonna have your form fields and keep in mind if you have a lot of form fields you can search and it'll pull up the things. So in this case I included the rationale. Come on, let me out of there. All right, so I included the rationale and it's worth looking at the format a little bit. It's just the question and then colon the ID of the field. So that could be this. And Ed is asking me, can I show the conditional logic? And that's what this is. So this is fortuitous question. So what I did on this one was if you didn't put a rationale for why your Wonder Twins thing was gonna work, it would say this sadly the Wonder Twins were defeated, blah, blah, blah. And this is the merge piece. It's a short code and I always have to look it up every single time I use it. I'll paste this particular one into the chat just so you can see it because I imagine it's kind of hard to see. But what it does is it's saying, hey, this is a gravity form short code. Our action is a conditional piece and we're applying it to the merge tag. What's your rationale? And if that rationale thing is empty, that's the value piece, show this stuff. And then at the end, you just turn off the short code like that. So it's saying if that first thing is empty, show this default text. And this is super nice for all sorts of things. If you put that wrapper in there, like throwing a header around director, if we have one, put director as an H2 tag and then list the director under it. But if we don't have a director, don't leave me that awkward director tag with nothing underneath it. And so like this thing makes me so happy in these scenarios because you can build stuff internally that takes into account what's actually entered into the form. So conditional logic is respected that way. It's just really nice. So can I ask you Tom on this form? Cause I really love the way Ed kind of predicted where you were going with this. But then so I'm reading along and I see this as if this value is empty, put this, where does it read the alternative? Well, I just, yeah. So if you look above it, that's just like put this in here because if there's nothing in it, it doesn't show up anyway. So I don't have to write an else statement in this. I could, but in this scenario to keep it kind of as simple as possible, I'm just like, here's the thing. And then below it, I'm like, if that thing doesn't exist, one it's not gonna show up and then show this thing. And that's a point again, where conditional logic is always retrospective. What comes after it kind of determines or plays off of what came before it. Is that fair to say? To a degree, like it's in this case, we're not referencing that except in the code. You know, I don't know if that's, it doesn't matter, but like that that's the true answer. I can't handle the truth. Right. And so what Ed's saying is like, for sharing URLs is a great example. Like you don't wanna, like if you asked somebody for a URL and it was optional and you're trying to make then a link to that place, like check here for more information. Ordinarily, if they don't put in a link, then you have this awkward broken link or you're putting in the whole URL, which isn't good for accessibility. Here you can say like, all right, if link exists, write the title of the text and say something like, check this link on title of the text for more information. And then it becomes a real functioning link. So good for accessibility, good for readability, all those things. And before couldn't do that easily. So. Great. Awesome. And then what else is going on here? I am automatically assigning it to a category, the Wonder Twin solution, which is what lets me show it on one page. And what else do I do here? And then I just did some CSS to make this stuff happen. How did I do that? We won't get into that right now. We won't get into the CSS. But the idea that we can mesh stuff up in interesting ways, I thought was worth seeing. Cause all they did was submit two images. And what we did is we overlaid this thing and dropped them behind it, which is pretty cool. I think it's just fun to think how flexible you can be with this, cause it's really, the limit is only your imagination and what you ask for and the ways in which you wish to see them combined. And the CSS is what you use to create that image mesh. We're seeing. Yes. Right, right, right. And so Taylor's asking if there's a cheat sheet, conditional logic, what is it? No, that's not it. I'll send you my post, which references it. Cause I have to literally go back to it each time. I'm sure if you Google it, you'll probably get it faster than that. But I do literally have to look it up. It's conditional merge tags. That's what you need. Conditional short codes. And you can get fancy code, and you can get fancy. Like there's a lot of stuff in here. I'd say that's another benefit to Gravity Forms. If you haven't looked here, their documentation is pretty, pretty solid. So there's a lot of stuff and a lot of people have done a lot of things. As somebody noted, that can be a little intimidating when you look for plugins in the WordPress piece and you do Gravity Forms and a million things show up. But just like WordPress having a supportive community, it's a pretty serious, well-documented thing. There's a lot of people that use it in a lot of ways and that can only help you, both in seen examples and having better documentation. So with that being said, why don't we make a form that makes a post and we'll kind of work through it together. So one of the things I talked about doing here was creating a list of supervillains from our good old super friends thing. I've strayed a bit from the super friends theme, but I'm gonna return to it to work here to make a villain log. So maybe because I was worried I wouldn't spell villain right. So I'm starting here with just a blank piece and I'm gonna build it not using any of the post fields just to prove a point more than anything else. And then we'll use our settings, post creation that advanced post creation option to make this stuff into the post. I'm not sure about Ed's question there. Sorry. In my exploration, I used the plug-in gravity forms plus custom post types because I needed it to connect the field to a custom taxonomy. Let me straighten that out real quick. So there's custom post types, which is not a taxonomy, but a post structure and there are custom taxonomies which are like different options other than categories and tags that are associated with posts or custom posts within WordPress. So there's two different things there. I wanna make sure I'm being clear on which is which. I think with the advanced post creation you're not gonna need the custom post types plug-in because it finds it and sees it automatically. If you didn't have that, you would need it to do it easily. So that's the difference there is if you've got the advanced one, you don't need the extra plug-in. I don't think you need it for custom taxonomies either. So this advanced option really gives you a lot of choices and I think is a benefit because it's internally supported by gravity forms. So you're not kind of bringing in extra people and it's nice and nicely tied together, I think. But with that being said, will you get that off the stove? Sorry, I can smell something burning. Do you need a minute? Yeah. No, no. I have enough children but I was like something is definitely on fire. All right. So let's do it this way. So we're gonna start our villain gather. Super villain name. We want one of those and a lot of this is you thinking through, like what data do I wanna collect? What's gonna be cool and useful and in what ways? And the nice thing here is that we have a lot more flexibility using the advanced thing. We don't have to necessarily nail down what is what in the creation here, we can do it after the fact when we say, all right, take this form data, make it into a post, which I super like. So I got a super villain name. I'm just gonna duplicate that. That can be handy because I was just gonna use the same type of feel. And I'm gonna go with alias, all right, except I'm gonna spell it right this time. And I think it's gonna go nicely side by side. So I can start to kind of construct my pieces here. Let's give them an origin story. I wanna do anything advanced. Yeah, I'll do the rich text editor in case I wanna use some links or something. And then let's add a few more fields. So what are some super villain qualities we might want? You wanna like maybe highlight some of their weaknesses. Like what are their abilities, right? Beautiful. See, I'm useful for something. All right, so we got weaknesses. And actually we're gonna change this then. So I'm gonna delete that and go back to add fields and we're gonna use one of our advanced fields because I think this is gonna be a list for us. And we could maybe have like Nemesi, like, you know, like Spider-Man and Goblin, like those two, like they hate each other. So like, who's their rivals? Like who do they match up against? And what I'm doing is I'm using the list thing because we don't know those, right, ahead of time. And we're gonna give people as many options as they want to kind of add these pieces. So weaknesses, we got rivals. Now the bad things that you kind of live with this are like, Jim might consider the weakness here, like kryptonite, water and fish. And somebody might come along here who's super geeky and they know the chemical symbol for kryptonite and they put that in and H2O and they write like, I don't know, whatever the scientific name for fish families are. So like, I mean, like, that's what you live with when you're doing this. So if we use it taxonomically, we just have to let a little bit of chaos into the system. And then we'll do one more piece where we're in control of it, which is when you check boxes and I'm gonna say evil level. And I'm gonna edit my choices and just be like moderate evil, got evil and super evil. And I left it as check boxes rather than radio buttons because maybe they're in all of those things at the same time. And I might go through here and do show values. I'll do mod, reg, oops, and super. Yeah, that's a good choice. So I'm just gonna save that. All right, so now we've got some stuff. Now this would naturally expand. We'd want a featured image. We want some other things, but this gives us the guts to kind of get started with. So I'm gonna go here to settings and I'm gonna go to post creation. All right, and it says I don't have any feeds because this is a new form. No feeds have been associated with it, let's say admin. All right, make me a villain. Go leave it public. It's gonna be a post, gonna be published, gonna be format, gonna be entry date logged in user. I mostly don't ever mess with that. All right, so the title, and I'm gonna click on our little Lego looking head thing here, super villain name, bam. All right, now the content, I can do a couple of different things here. So we're not gonna do the logic stuff right now just because it takes a while. I'm having that aha moment. Now I understand how the two are linked to each other. You create the form elements in the one and then this automatically populates the post. Normal to anyone who's probably everyone's like idiot, but like for me, it's like it takes me this to see it. And that's awesome. Absolutely not. Like it still feels weird to me to go here to do this just cause it's like a second step. But as long as in my head, I had it just like, all right, forms whatever and we made the form here. Now we're making the construction of the post in a different place. And why? Cause this would be just too much of a mess to do all in one place. Just got too messy. So we'll just do this simply like, and I might like, if I'm feeling like I wanna do a little bit of this and this is, you know, I can do some simple HTML here, right? Another great thing like a tip is like, if you're not comfortable writing HTML, make this in another post the way you want it and then cut and paste it in. This is one of the reasons like the classic editor can be useful is, you know, it's just easier to get the HTML out without a lot of cruft. So we got alias, I'll do evil level. And again, we're just gonna click on our Lego head. We'll do origin and I'll just. So it's got me excited seeing you do this because like you see the elements, right? And then you'll have the image maybe off to the right of the evil thing. And you kind of have like a playing card like you could use to CSS and then that can come up and then there's your database information visually of that super villain. Beautiful. Yeah, it's just what pieces do we have acts and where do we wanna put them? Which, you know, it's super nice. And then we're gonna go for categories just for fun. We'll do weaknesses and we'll put rivals into tags. There's no rationale here, I'm just being stupid. But I can also click on that plus button and do this with another thing, like assign a tag manually. Right? So now this will automatically be tagged fish and all the rivals and this could be like whatever. I'll make it somewhat more rational. But you can do the same thing here with categories and we'll do the same thing. I'll assign a category and I'll add a new category. Hopefully that won't confuse you, but in any case, and then I can also do conditional logic. Like don't submit this if super villain name is not blah blah blah or, you know, so this can be really handy and a really nice anti-spam measure if you want it to be like do a simple math problem or tell me your favorite ed tech celebrity or his reclaim hosting the best or whatever. But let me save that. Let me save that and then I'm gonna hit preview. All right, super villain name, evil Jim, born on a mountaintop. I'm liking how this is shaping up. Yes, weaknesses. No known weaknesses. Streaming media. Physical media, exactly. Yeah, I don't know, rivals. Who is your rival? Michael Chasen. I don't have any rivals. And Ed Tech Santa. Ed Tech Santa, like Tom Woodward sometimes. All right, and then we'll give him, you know, depending on the time of day, you might be moderately evil or evil. So let's submit this. All right, and we didn't change the confirmation or anything, so it's this lame statement, but let's take a look at all posts and see what happened. All right, we got evil Jim. So that was the name. We got our automatic category and tags, biography for the category, bio for the tags, and then our weaknesses there and the enemy list there. And let's take a look at other pieces. There we go, alias, reverend, evil level, moderately evil, comma, evil, and our origin. And then we got our stuff there. Yeah. Not bad, right? No, not bad at all. And so, yeah, we can start to build on that. And you know, like I said, this is another pro tip. See how I just hit back there and all the stuff is still in it? Believe it or not, that can be really handy when you're endlessly submitting garbage, just trying to generate more entries than you just change one thing and resubmit. And then what do we know? That evil Jim too with a few changes. So like little bits like that can be really helpful in testing. So worth keeping in mind. Yeah, it's good to see that whole process from beginning to end, from the form to the post-creation and then to what it looks like visually. It's nice. And also how it follows in the logic of the form of awesome super villain or superhero website because of the page, right? The purple and yellow, it's really nice. Yeah, yeah, you're just then using, this is all about like, gravity form gives you the tools to accept whatever data you are and then it makes the connection to WordPress to display it in the ways that you want. And this is where we can go in kind of different ways. You know, how are we feeling so far? Anyone comment in there? Like, are we good? Should I take this to the next level? Yeah, I think so. I mean, I think we got the lawful evil, neutral evil. And Meredith did have to get back on support, but she can always watch the video for catch-up. But obviously she's inspired by the conditional logic stuff. Well, we can start to make this a little more complex and we'll do that in two different ways, maybe. So I could go into post-fields and choose post-image. So this is an option. And let me show you though, like one nice thing. Thank you, Ed. Particularly with regard to the increased focus on accessibility. When I do this with the post-image, notice I have the ability to assign alternative text. That can be a great thing to have. So I'll ask for a villain portrait and I will say set this as the featured image. So now when we submit this, let me save it. Actually, let's do this. There we go. Starting to feel a little more, a more like a comprehensive form. Before we go and do this, I'm gonna add a little bit of polish do so that we feel that we've changed some things here. So I'm just going back to my post-creation. I'm gonna edit this particular piece. This is the one we were making before, right? So you may have different levels of knowledge around HTML and CSS. I'm telling you, if you have any interest in learning it, you definitely can. The stuff is not that bad. You just take it little pieces at a time. So just for fun, I'm gonna add a little bit of a class here. And I'll just call it something random. Ville title. All right. I want that for all my hdos. So I'll just type it in here. All right, so that's a little bit of extra. Little bit of extra. Hopefully, not too frightening. If anyone is becoming frightened or this is going too far, let me know. All right, so I'm gonna preview this one. All right. I don't know how to spell evil, conneval. We're gonna pretend that was it. Good old EK. Bike crash. Weaknesses. Helmets. Rivals. Insurance. Adjusters. All right. He's super evil. And let me give a portrait. Now, I keep like a bunch of random pictures here for use for stuff like this. So I'm gonna submit. And what we're gonna see here, let's go to posts. You should see evil misspelled conneval. Let's take a look at it. And did the feature damage work? It did not. So this is another reason why I tend to do it one way or the other. So let's see what happens when I do this. So I'm gonna go back here. I'm just gonna, I'm gonna delete this because I'm mad now. And I'm gonna go to advance fields instead. Gonna pause there. So forgive me. Before I delete this out of anger, I'm gonna do what I suggest everyone does. It's just like be calm and go back to post creation and just make sure, let's see what else we got here. Do we have a featured image piece? I think we do. I don't know. Do you see one? No, I don't. So that should work then. Let me just try one more time. All right. So that's in there. Alternative text, set as featured image. Oh, another thing I can do is I can say, did it upload? It did. Yeah, there it is. Or is that an old one? That's probably an old one. I have a bad habit of reusing things. So let me look and see if I've screwed anything up. But I'm staying calm and not getting mad. And I have all these people looking at me. So another thing I can play around with too is so I can put it here. I'm just gonna stick it in an actual thing in case preview is being a little bit funny. All right. And this is what happens when I start to get irritated and less entertaining. I go to foobar. Yes. Well done, Gordon. Yes, thank you. Jerome loves you and Carter. All right. So let's try again here. Like my selection of stuff. Fingers crossed. So I don't know what's going on there. It should be working. Maybe I've missed an update somewhere along the line. I'm not sure why that isn't working. I promise you it does. We did have some issues though with PHP with some of the bigger images on the other form. So there sometimes can be PHP limits but those seem like pretty small images. Yeah. And what I can do is this. Let's try it someplace else. So I'm gonna go to it. This is my local development environment. You see all my exciting similar posts. And let's see if I've got a guy here. I'm gonna try a basic one. I'll do just a generic one with a post image only. Save form, preview. And that's not working here either, huh? I don't know what's going on, folks. But that's just with images, right? Just putting that feature image in the right. Yeah, just the featured image is not working the way it should. And I don't know why but there are lots of things I could do and will do to find out. I'll kind of update you. So I swear I've done this a million times with a million things and it works. So this is just like a temporary glitch and I'm not sure what's driving it. I wouldn't worry about it though. Yeah, well, you know, I get irritated with this but let's take a look at what I was doing here though. So we do have a post which has a class in it and let's take a look at like what we can do then. So modern WordPress themes are gonna let you come in here. Yeah, doing things on the fly. It's hit customize and we can write our own CSS. You can see that I've already done a chunk of that here but I've just added a class and that was a VIL title. All right, and what you'll notice is I started with a period. So classes are things that you can reuse on the same page lots of times and they always start with periods. You might have an ID and that's gonna start with a hashtag. So that's just the difference and you would officially only have one of those on a page. So it's like you just have one ID for yourself. There's one ID of a particular title on a page. But we can start to do stuff like font size four. We could do background, color, pink. We now have control over those things as a consistent unit and this is where CSS is super nice and even knowing little tiny bits of it can be really helpful. But this is how you start to build out exactly what you want. And where is that a customizing additional CSS series of fields? Is that in the theme? Are you doing that in the theme or are you doing that in the form? So I did two things. So in the submit a villain form, let's go back wherever I put that form. So in our form submit a villain, I guess villain log under post creation. Let's take a look at where I added the classes. You put the class in the actual post, right? Yeah, so there's the class and I put it with each of the H2 elements. Now just for fun and to show you like, if I delete this now, it's not gonna impact anything that's been created. It only impacts future creation. So just know that. So get it right before you start making stuff. At least at that functional level. And then when it came down to the actual post and getting the CSS to do something, that's when I go to customize. Gotcha. In the actual theme. Yes, and I know what the problem is here. So this is where you just go customize, additional CSS. And that's the little bit of gibberish I was messing with here. So, but with these little pieces, you can really, and those are like things I added, you can also reuse the pieces that exist in the theme already. Like if you were to go and like check out something you like, like I like the way this button looks, you could go inspect and be like, all right. Well, that's a big chunk of CSS names, but you could use the stuff that already exists in your posts to do things. You know. Yeah, I can do a whole series of 80s fonts and maybe like play with them and make them three dimensional and maybe some wood paneling behind them. Why not? Yeah, I mean, you absolutely can. You absolutely can. Yeah, like we could do a box shadow. I need to do it on something else. I can do font box shadow, if it means text. There, yeah. So you see, we can start to get to 80s fonts. That's nice. But yeah, that's correct. And like I said, you can pick up little pieces of this at a time. You don't need to know all this stuff now, but it is like gradually, at least for me, I want it bits more control. And as you want more control, it's just gonna work you into different things. That's all. And it's just a little tiny bits at a time. And some of it, like you can see, like I didn't remember text shadow versus box shadow. I don't have to. I can just Google that stuff. Or I could say like make font border thing and see what comes up, CSS. And that way you just slowly learn this stuff and then you can do whatever you want, which I think is at least my goal. I just wanna be able to do whatever I want. But now I understand what you mean by gravity forms flare. Yeah, piece of flare. I don't know how many we need, but like that's the start of this. And I don't know, do we have any questions? Is there anything I should have hit that we didn't hit? Cause we have about 12 minutes maybe in this extended version. Yeah, this is, I mean, we did do the Q and A up front. And so I do think we covered, I really appreciate the idea of the form and how that goes into post-creation and then even more customization on the back end. That's really clear. And then do you, don't you wanna express, then you can read Taylor's talking about expressing yourself and that's what you're doing. But do we have any other questions? If you do in Discord, let us know. Anything in the last 10 minutes or so, Tom, you wanna share? We don't have to keep going if you feel like you've covered everything you have. You just let me know. Well, what I can, I'll share my project cause I didn't share that. Let me open it up here. So yeah, well, if y'all have any questions, I love questions, but if not, I'll show you my parallel practice thing. So this is an actual piece that I'm doing with a faculty member and you can see the kind of ugly land I'm in right now. So I just wanna show you the form itself which is super, super basic, right? It's just, I stuck to HTML things and then it's just the side-by-side stuff. But what I've got going on right now is like, what they wanna do is they wanna show connection between the way people practice one thing and another thing. In this case, it's gonna be elements of translation with this particular hobby. So they're taking a class on translation and they're gonna pick a hobby like juggling or yoga or something and practice both of them. And they are just logging certain things. But what I want is to make the parallel practice parallel. So I'm gonna do some stuff with visual things to delineate that. And the problem I ran into though is when I go to mobile view, I didn't want it to merge this way, right? Cause what happens normally is time and minutes would then have time and minutes under it and it would kind of break this parallel thing. And so I was able to, with a little CSS, make it so it does fall directly below. And with a little bit of work, I could make it so that it would tap through and go this way and then down this way rather than across, across, across. But this thing is gonna log data and we're gonna have graphs and charts driven by the gravity form stuff. So that's the project I'm working on live through gravity form. So just kind of to show that you have a lot of options and you can kind of make it do the tricks you need it to do with a little bit of work. I do see Taylor's question. Once stuff's created, if you're relying on the creation, and this is actually a great example of some times that it's worth maybe diving into custom fields and displays. Because if I build like a custom post type and a template and I have the data in custom fields, then I can show it. And if I wanna change anything with the wrappers and whatnot, I can on the fly for everything. But it's that balance between, it's super easy to go from gravity forms to commit it posts. But you cannot change them at scale in any normal way. Apps, it may be, you can change the CSS that applies to it. But you can go the more aggressive route and create a whole template. It's just more overhead than a lot of people want. But you can definitely do it. I think the thing I would say too is you may have more options depending on what kind of change you want with CSS than you realize. Or I've also done some pretty aggressive things with JavaScript to deal with like changing my mind later or addressing things I didn't make and fixing them. CSS can do a lot of neat tricks. The thing that's causing this color to do this way is like choose the even items on the right because this would be item one and this would be item two over here. So these are even. So I can choose even or odd via CSS and do coloring. There's a lot of stuff. Right, yeah. And so that's what I mean by CSS. Like if we wanted to just remove the class action on the second item, we could do like nth-child parentheses two, you know? And so like there's some weird options like that. So the difficult thing is like knowing that those options exist if you're not familiar with some of them. So now my default is I can do just about anything with CSS and JavaScript. I just have to figure out how to do it. Tom can do anything with JavaScript. Well, I guess I should say anyone could. Like it's not me, you know what I mean? So with what you and Taylor were talking about just for clarity, one of the problems is once those classes for CSS are attached to a particular group, do you want to share your screen? Would that be easier? But once they're attached, yeah. So bring it on in, I will, I'll help you. So once they're attached, they're hard to remove from the post. I'm just trying to follow that logic so I don't make that mistake if you could spell it out. Right, let's say down the line, we decided that evil level really ought to be red with a black background. You know, like the, we already did it. Like it exists. Like, so maybe in the same way, we write the form, get the data. We do the post creation to make the data go into a post. But at that point, the data's written, right? And so in this scenario, if we want to make a change here, we could go in by hand and remove it, right? We could go edit the post and actually just remove the thing. But there's no functional way to take that class away from this thing. So that's where we get into like... But couldn't you just change what the class like shows? Cause that's right, cascading styles. So wouldn't if you changed it right there in terms of the class of size and color and all that, wouldn't it just change across everyone? Yes, but we only want to change it for one of them. And that's the evil level one. And that's the tricky part, right? So if we want that one red, and that's what I mean by like, you can do something like this. Let's see if I get it right. I almost never get this right. Ends of type two background blue. There we go, I got it. So you see, like you could target just that thing in the CSS. And that's what I mean by like, you can't really change the data, but you might be able to change the way the data looks. Or you could say, my old favorite and everyone else's display none. Like we don't want that title anymore. And so in that way, but it's like a hack more than a fix. You know what I mean? It works, it's functional, but it's not the same level of control as say, being able to change the template so that that class is literally different on all the content that's been created. And that's where, you know, those custom fields or advanced custom fields and their expression in a template gives you a lot more control down the line if you think that is gonna be necessary. But it's a lot of overhead to get that control. Yeah, exactly. And we're really talking about a specific, changing a specific header for a specific entry on a form versus all of those headers across all of the forms. Is that what it says? Yeah, I mean, it's just pretty marginal. Yeah, it's just that thing like, don't think that if you change the form and the post thing that that's gonna apply to anything that's been created already, that's all just know that. And probably it's gonna be all right. Like, you know, like in most of these scenarios, you're not dealing with like congressional records or something, you know, you can kind of just like keep improving it and be okay with the other stuff being wherever it was, it'll be all right. Or go change it by hand or do a find or replace in the database if it really bugs you, but you know. Yeah, totally. All right, so good. So that is week two, I think we can say, you know, a little bit of gravity forms flair even down to, you know, CSS hacking to make sure that you have the most beautiful header for your supervillains evil category, which will come in handy as well, depending on how you roll with the supervillains. So we will once again, send out some expectations of reviewing some of the stuff you all kind of took in today playing. I know what I'm gonna do with this post creation now. And now I have a whole new tool set to play with and build on, but we'll post that. We'll post this video as soon as tomorrow and then we'll follow up again with an email and a post of things to get ready for next Thursday. So again, Tom, thanks for sharing with us around gravity forms. We appreciate it. My pleasure. All right, everybody, thanks for coming and we will see you next week. Bye-bye.