[00:00:20] Nathan Wrigley: Hello there, and welcome once again to the WP Builds podcast. You've reached episode number 458 entitled, unpacking the Clever Content Area Block with Ian Svoboda. It was published on Thursday, the 26th of February, 2026.
My name's Nathan Wrigley and before we get into the podcast with Ian, a very small piece of housekeeping.
I'm simply gonna say that if you enjoy WP Builds, why not give us a like on your favorite social media platform. Maybe retweet what we produce. Also head to wpbuilds.com/subscribe to find out more. If, however, you have a product or work for a company that has a product or service in the WordPress space and you feel that you'd like a little marketing nudge, you'd like a little bit of promotion out there, and would like to find a WordPress specific audience, well guess what? That's exactly what we have. A WordPress specific audience. If you'd like, your product or service mentioning in WP Builds and getting right into the ears of people in the WordPress community, head to wpbuilds.com/advertise to find out more. Or just drop me an email [email protected] and I'll get back to you asap.
Okay, I lied to you. I said I only had one piece of housekeeping. I have another, and that is to say, don't forget, we have the this. Week in WordPress show, which we do every Monday. We do it live so that the audience can comment, and we really, really appreciate those people who show up to do that. Monday, 2:00 PM UK time, at the easy to remember URL wpbuilds.com/live. We'll send it out to you as a podcast episode the following day. And you are consuming the episode that we produce every Thursday, so we'll do that as well.
So the cadence really is Monday, the live show, repurposed on Tuesday, and also the podcast episode on Thursday. So there you go. That's the skinny on what we do at WP Builds. Okay, that really is it for the housekeeping this week.
So what are we doing today? Well, today I am chatting with Ian Svoboda. I make an apology at the beginning. We also talk oddly, about, where he lives, Jacksonville and how big it is, which is a bit of a peculiar rabbit hole to go down. But I talk about the fact that I came across Ian's plugin called the Content Area Block, and was slightly confused about what it did. So mentioned it on the This Week in WordPress show, but really got it completely wrong. So, got in touch with Ian and he's here today to straighten out what the plugin is for.
And essentially it solves this problem. Why do we only have one content area in WordPress? So I know that you can overcome that with all sorts of clever things, you know, custom fields and whatnot. But Ian's whole thing is, why don't we just have multiple content areas? And so he's built a plugin, which achieves that.
So we talk about his history with WordPress. What the problem is that he was trying to solve. How he solves it. The technical implementation that he put in place. What the constraints are around it. Technical challenges, and how it might be used in a editorial workflow.
So it's a really interesting episode, honestly, a really interesting product and I hope it has great success. And I hope that you enjoy the podcast.
I am joined on the podcast by Ian Svoboda, who, surname I am happy to pronounce, pronounce correctly. I think I've got the thumbs up.
Did I get it right?
[00:03:42] Ian Svoboda: You did.
[00:03:43] Nathan Wrigley: First shot. Great stuff. I, I'm being joined by Ian because, I have to apologize publicly to Ian and I, suspect he's then gonna return the favor a few weeks ago. On this week in WordPress, I just scour the WordPress news and if curious, interesting stuff comes my way.
I tend to put it into that show, and one of the things that often happens is new shiny plugin or plugin that I've never seen before. Pop it into the show and then try to understand what it does and failed miserably to understand what Ian's plugin does. And, it's called content area block.
and he's here to set the record straight to make us understand. What it actually does. so first of all, Ian, hi. And do you wanna just tell us who you are, where you live, and all that stuff?
[00:04:33] Ian Svoboda: yeah, absolutely. It's great to be here. my name is Ian, as Nathan said, and I am a WordPress developer slash software engineer. I've worked on other things besides WordPress, but WordPress has been my main focus for the last, I don't know, 13 plus years now. So I've been doing this a long time.
I started off working at an agency for web.com back when they, but were just web.com. And then I've worked at a lot of smaller agencies. I've worked at like bigger agencies, like 10 up. I've done a little bit of core contributing. I've done some product work on plugins that you may have heard of, like generate blocks slash generate press.
search and filter certain other plugins like
[00:05:16] Nathan Wrigley: Wow.
[00:05:17] Ian Svoboda: I've gotten my, I've gotten my mitts in all kinds of
[00:05:20] Nathan Wrigley: Yeah, you really
[00:05:21] Ian Svoboda: but
[00:05:22] Nathan Wrigley: gosh. every one of those things that you just named I've either used or heard of a lot. That's fascinating. Yeah. a privilege to work on these things and, I live in Jacksonville, Florida where no companies to speak of our headquartered besides web.com/new fold digital, ironically enough. But, it's been, really nice to be able to work with so many different people in different countries and do this stuff.
[00:05:46] Ian Svoboda: it was, it's been a big privilege to work on cool products like that. It's one of the things I love about my job.
[00:05:51] Nathan Wrigley: I'm gonna segue in the most unexpected way, when I was significantly younger than I am now. I drove a car down the east coast of America and I drove past
[00:06:01] Ian Svoboda: Wow.
[00:06:02] Nathan Wrigley: and I had a guidebook, and I have for reasons that I cannot remember, you just said Jacksonville. And this fact came back into my head at the time that I drove past Jacksonville.
Jacksonville by square mileage was the biggest city on earth. Even though it might have like this, I don't know, tiny population compared to, like Tokyo or something like that, it, I don't even know if that squares with your, with the reality
that,
[00:06:29] Ian Svoboda: I couldn't speak to the whole world, but I can tell you it is one of the largest con cities, if not the largest in the United States by pure landmass a lot of times. how do you, how do I put this? if you think about, say the LA metropolitan area, right? they, Los Angeles is huge, but Los Angeles, it's, there's like LA County and then there's like the surrounding areas outside of that.
So our county Duval Doval, as we say here. Is all just, it's all Jacksonville. It's all just one enormous thing. So population wise, it's not as big, of course, as like Chicago, New York, or, but it is nice and spread out,
[00:07:07] Nathan Wrigley: it's probably about the same size as whales or something like that. where I live, it's probably the size of an entire country. No, I'm not joking. if you pick up the UK and you can tessellate it perfectly, you can fit it four times into Texas. All of it. England, Scotland, Wales, Northern Ireland goes into, yeah.
Yeah, I know. It
[00:07:27] Ian Svoboda: It's like a whole country,
[00:07:28] Nathan Wrigley: and we have 70 odd million people. Anyway, there's my digression. Let's get it back to WordPress and the plugin that you've got. content area, block court side of it. Saw it on the repo, thought I'd understood it. Put it on the show. Turns out. As I was saying, as I was reading the description, it occurred to me that I hadn't a clue.
And so I backpedaled pretty quickly. is this how it works? Is that how it works? No, I got everything wrong. Tell us what it does. Put the record straight. It's fascinating.
[00:07:56] Ian Svoboda: Okay, so the first thing I have to say is that I am so glad that you were confused by it because I realized that I did not explain it well enough. I was looking at my own description for this, and I'd written a, I have a course that I'm making and I have a newsletter where I write, I like put out a post and I notify people about it every week.
And so as I was writing this up, I was like, oh man, I didn't really do. That great of a job explaining this because if it is meant to be something that a non nerd would be able to use, it should be something that's a lot easier to understand. And then I'd explain it to, say my friend Ross, and he's a, hardcore developer himself, who also similarly did not exactly
[00:08:37] Nathan Wrigley: Okay. Okay. So it's not just, it's not just an audience
[00:08:39] Ian Svoboda: It is not just you. I felt compelled to not only make a video about it, but I thought, why don't I tell you? And then that way I can get some feedback from a person who, I don't have any like experience who wouldn't have any reason to lie to
me, who could tell me, does this make more sense?
And then you go, that makes way more sense. So I'm about
[00:09:02] Nathan Wrigley: I felt like really pleased when you sent that. I dunno if you've made that video and I can't remember if you sent it to me directly or I watched it from start to finish and by the end of it I was like, oh. Oh, okay. But not just okay, that's so obvious now, but also, oh, what a great idea.
it's a great idea.
[00:09:24] Ian Svoboda: Because this is really interest, like before I, get into any technical details, maybe I'll start with what the impetus of this whole idea
There was a, This is actually a common, this scenario is a common thing I've encountered in my whole career on many different projects and site builds where you have a designer say, or a team of people, they put together this plan for this template and they say, we want it to work this way and the other, and they don't know about.
WordPress, technical limitations or whatever, they're just coming up with cool ideas that how can, we make this page useful for people? And so they had this post type, this is for a news website, and the site had this one main content section that was in the middle. So there was some static, it's not static, but there were like blocks you couldn't really change per post.
They were dynamic, but you didn't mess with those in the post content. And they had those, and they had a little area for post content things to go, but then down below it had this thing that was like a timeline. And so the concept is they're making a topic say about healthcare in, a certain healthcare subject or whatever.
And they wanna show a timeline of events. And so they wanted to be able to go in there. Put in a year and then certain months inside of the year, maybe not every month, but some months, and then inside of those be able to say, okay, here's a story that relates to that. Here's just a text note that we're writing by hand that relates to that.
Here's a key event that goes into that. And they wanted to make all that dynamic and different per post in a separate area than the regular post content. So they wanted to have post content blocks up here, and they wanted this timeline delio down here. Now, if you're a person who's ever built things like this before, your first inclination might be to go like for post meta or something.
we'll set up some years and months and all that stuff. which is okay I guess. But the downside is that if you're like a content editor person who knows nothing about what, even barely understands what post met even means, the editing experience of that's poor. And the people that we were building this for were very used to having to do that sort of thing.
So if we had built that would've been fine. But I thought to myself like, this is a very visual element. It has animations and like you can expand or collapse the years and different parts of the stories and all this different stuff. So having that be a more visual experience, just a felt more like the correct WordPress way to do it.
But then B, it was clearly a better idea. And so I explained like I could do this to the person who would actually be doing these changes, but what if we did this way? And they're like, oh, that sounds dope. You should do that. And I, being a dumb person at the time, did not exactly realize that this was gonna be a bit of a technical challenge, because I was like, oh yeah, I'll just stick another content block over there.
But then I did that and I was like that. Wait, that makes no sense, right? The post content block. In WordPress, it normally just plucks out your post Yeah. like whatever's just in the editor for that one post. if you're a database person, you know that there's that post underscore content column, right?
That goes in there. And so there's really no way to have multiple of those. It just shows the same thing twice. That got me thinking to myself, what is the post content? It's just a column that holds a string of text, which is the exact same thing that Post Meta does. So what if we, built these blocks to visually represent the timeline itself, the year, the month, and then the individual timeline items, which could have a couple variations of like how they display and what if we could just have those that get saved into post meta instead of just into the post content at that point, then we could just trick WordPress into displaying that stuff.
In another location. And if, for people who aren't familiar with this, when you're using a block theme, which is what this site was doing, there's an option that you can use to say, show the template. So it shows the whole template inside, not just the post content. And so like when you do that, it shows the actual blocks that are in that template in the sidebar, but they're locked for like you can't edit them or do anything that you can click on them though.
Stuff like that. And in another area of the site, we had already done some experimenting. Shout out to Cory. My homie on that project who, was doing this before, he, he had turned me onto this, that you can use a filter to designate which blocks are actually content only mode and all that stuff.
So it occurred to me that if we had the template visible and this other area was visible too, we could just make that another place where you could insert blocks like the technical term I would use for this is an outlet of some kind inside of a template, right? Like you have the template. And then you have an outlet where other stuff can go and that other stuff could come from somewhere else besides inside the template.
And so I explored doing this for this company so that we could add this feature. And what I quickly realized is that there isn't really like a composable way. Like they don't really, in WordPress core give you a simple function. You can just export or something or a hook to just do this sort of thing.
I had to fork. The post content block and make a copy of this internal hook that WordPress uses under the hood in order to do this. 'cause it is very specifically designed to take things from the post content and from the post content only. And so it occurred to me after I built all of this and I built like an MVP version, not really like a plugin.
It was just built into the theme. And I thought, man, this is actually nice. 'cause what if you had. Any other template where you wanted to be able to have one post, and I wanna be able to put blocks here. I wanna be able to put blocks there. So on. And so that's where the idea for the block came together.
And I also thought to myself, I just did a ton of work to make this even kind of work. Now I strongly doubt anyone's just gonna casually figure this out anytime soon. And it's just like you have to be. and besides, you'd have to be so motivated to do that if you're not being paid to do it already or And I wanted to put, so I was putting my thinking cap on here. Like I wanted to put out a plug in that. Other people might find useful that would be helpful to others. So maybe this would finally be that thing. And so that's what, led me down this path. And so this plugin, what it lets you do is you can take a block, a content area block, you can put it inside your site editor template, and then you can say, I wanna save, the blocks to a certain meta key if you care.
Otherwise, it'll, there's one that it registers for you for all post types out of the box, which you can turn off if you want. And so it does all that. It makes that really easy. So if you don't care about those details, you can just turn it on and it'll work. You can also say, I only want these blocks, or every block, except those ones.
That kind of stuff. So when we did this timeline implementation thing, I set it up so that, you can only add like a headline and a timeline block or something. So they weren't just like accidentally sticking YouTube in beds in the place where the timeline is supposed to go and things like that.
And then, a couple, I did a few version updates to make sure it supported things like undo and copy paste as well as it can and things like that. Yeah, it was. It was really cool. And as far as I know, there is no other plugin that does
[00:16:48] Nathan Wrigley: No, and,
the bit, that kind of caught me off guard was it's why is there only one content area? What, like I can see what, for historical reasons why, that's an interesting idea, but why couldn't you just. I dunno, like a, I dunno. a plugin which enables you to have custom fields or something like that.
This repeatable field that we've got where we used to, you click plus and get another version of that thing and then, oh, let's have another one and another one. Why not that for the content area, the sip the ship has is sailed there, that just with the benefit of hindsight, that would've been such an obvious idea.
Can I just read back to you in a way what you just said and see if I've got it right. So if, let's say, for example, I've got, I'm just using WordPress posts and I go into the template to display. The posts in the site editor and I stick your block somewhere that then is a container for other blocks.
It's a, so I've got the regular WordPress post editor where I can go in and write, but then when I'm creating a post, I go into the sidebar click show template that then will expose your block, which is a wrapper for. Whatever you want to allow it to be a wrapper for. So let's say for example, you could do, I don't know, text or video embeds or something like that.
In a sense, you are doing the same job that we might have clued with metadata. So we might have had a field for. The text, we might have had a field for the YouTube embed, but in this case, because you've made it a wrapper and it lives in the template, you can put whatever the heck you like. You're not bound by the constraints of the type of data that meta field will hold.
Have I got that about right?
[00:18:34] Ian Svoboda: Yeah. Yeah, I'd say
[00:18:35] Nathan Wrigley: That's better. It's better than it was last time
[00:18:38] Ian Svoboda: it's actually analogous, oh, in a big way to what you might do with, a CF flexible sections. In days of your right, you'd have maybe you'd have a flex section and you'd output that as your main template content. But picture, you just had another one of those things.
Which would then emit in the sidebar or something. And speaking of the sidebar, this type of thing has felt especially relevant for sidebars, right? Because how many times have you thought to yourself, man, especially in the past with widgets, I have these widgets in here, but I want to have a widget that is post specific.
It appears in a, in the sidebar in that separate area, but it's specific to this page. I was thinking about my course and I thought, what if I, and I didn't actually end up doing this. Later, but I thought if I had resources that were less than specific and I wanted to list them over there or something, there's really that's the only way you can do that.
And if you're doing that with just pure meta, you have to do say a c, F and stuff. You'd have to do a lot of work to indicate what could show there. Somebody might say, you got a YouTube in, babe, what about Vimeo? Or. What if I wanna put a list and there's only a paragraph or all these different things and it definitely strikes me as something that, that makes sense to be there because what post content is, it's just a string of text.
It's just a string.
[00:19:57] Nathan Wrigley: as a, like a user of WordPress, I can get my head around the fact that, okay, there's some metadata it's held underneath the post editor, and that in the end will end up there. Okay. So just suspend your disbelief. That text, honestly, I promise you it's gonna go there when we publish it.
And that video in bed, it's gonna go there. I promise you it'll end up there, even though it doesn't look like it'll end up anywhere. But the ability to like, so you've got the main content and then in the template you can have the sidebar in the sidebar and you can edit the content in place. that makes so much sense and from an editor's point of view.
you can still have the metadata that you wanna put in the, I don't know, the LMS or whatever it is that's showing how far you've got through the course or whatever. But then underneath that, on a per post basis, you've got the any content that you wanna write. it's so obvious. and I, can't, honestly, I can't believe you are the first person to do it.
[00:20:57] Ian Svoboda: Yeah, like I said, I naively thought, oh sure, you can just, do, you can just do that. No, you cannot. There it is
[00:21:05] Nathan Wrigley: why can't you just do that? What do, just explore the, nightmare that you've been through.
[00:21:12] Ian Svoboda: okay, so WordPress, for those who haven't done any sort of nerdy extension level things, there's these packages like at WordPress slash components or block editor and so on, where you can like, take all these different hooks, react hooks and functions and all this other stuff to extend the interface, like you want to add a new panel here or do something else there.
There are certain functions though, that are not exported anywhere, so they're not like something you can just use. Or it's like a private function or a private API, you might hear it called. So in this case, there is a hook that's called use entity, block editor, and an entity. When we say entity, it's just another word for a post or a user or a term or something like that, like an object of data.
Whatever. So in this case, though, a post or a page pages are effectively a post under the hood anyway, and that function is just very explicitly designed to be working with the post content. The way that you update and set post content versus post meta is different. So it's not like you can just change one small thing to say, oh, it goes to meta now.
It's not, quite that simple. There's a lot of nuances there, and that function is not designed to be used for other things. On top of that, the actual. Post content. if anyone is listening to this and you're wondering, man, how hard could it be? Take a look at the code for the core post content block and you'll start to get a sense of it immediately.
Like for one thing, that block is involved because if you, it has all these different things to make sure it doesn't render recursively. if you put a content. Inside of something that has a content block, it won't just render it endlessly 'cause I would crash your whole page and all this different stuff.
So there's just a lot of very specific technical nuance that goes into achieving it. Like it uses this thing called the use inner block props, which is like the, when you're building a custom block, this is what you would use to decide what goes inside your block. If your block lets other blocks go inside of it and all that, and that, that is something you can just use.
But everything that custom block does is just heavily custom. It uses certain unstable APIs, which is. Basically their way of saying we might change this at any time, so you shouldn't use it. And if you do, it might break at any point, and we don't care if it does because you shouldn't be using it.
[00:23:38] Nathan Wrigley: And it sounds like when we joined the call, before we hit record, it sounds like you may have stumbled into a bit of that over the last few weeks with the word, with the WordPress update to 6.9.
[00:23:50] Ian Svoboda: may Haps, man, 6.9 happened and now, I'm having a little bit of trouble that I have to go through and refactor, which ironically enough so far does not appear to have anything to do with that ultra complicated hook itself. It appears that there's some template locking changes that have gone into effect.
So if, if anyone from Core is watching this and you would like to tell me. Where I'm, where I need to look. I would appreciate that. I'm probably gonna cry Uncle and hit up my friend Fabian as well. Shout out Fabian, the man's a wizard. When I was working at 10 Up, he helped me, he helped me make, do my first core contribution.
He's all around a fantastic human being. I think Core is very lucky to have people like him and stuff, doing that kind of work. they really care about doing a great job and it's nice to be able to have access to those people. So I'm gonna, I'm gonna try to pull out all the stops to get this jamming very soon, but.
I'm confident. I'm confident it'll, work out. My ultimate end goal, though, is if I make this thing super dope, maybe there's a way I can just fold it into core in the first place. Because the, it's the post content block is, it's the, it's like the exact same thing. The only real difference between these two blocks is that there's a few extra attributes for saying, do you wanna allow or disallow blocks, and it uses the different hook.
Otherwise it's very, similar. So it strikes me
[00:25:12] Nathan Wrigley: done the allow and disallow blocks just because you saw scenarios where you wanted to disable, I don't know, certain things being added in there. could you strip that out? If it was, gonna be a core feature, could you strip it out? So it really was just too.
Content areas that allowed exactly the same, IE everything
[00:25:28] Ian Svoboda: YI mean, you could, but, there's actually a, and I found this out when I was digging around and, and looking for the solutions here. WordPress actually has a supports attribute, like for your block. You can declare it supports certain things, so it'll, like a say like an anchor, which basically means you can add an ID and it puts a little box for you type IDs in, so you don't have to do any of that.
There is actually something like that for allowed blocks. Or not. So it seems to me to be it jives with the composable nature of things. I'm sure I could remove it. I'm not sure that we should though, if you're gonna do that, just because it makes it a lot more client friendly.
'cause like picture for a second. You're a news editor, like a person who works for a news company and you're just trying to go in and plug in some content. if I gave you every single block that WordPress has available to say, stick in here. Yikes. For one thing, you might wonder which 1:00 AM I supposed to use?
But then two, if you put the wrong one in and somebody's dammit, Janine, you use the wrong block. She's why the hell can I even pick it? Why is it even in there? like that was my mentality with this stuff is if I think that WordPress, as far as an editing experience is currently lacking certain client guardrails like that, which they've started to do more of with content only editing and things like that.
So that way you can have these cool block configurations, but you can allow somebody to edit things without tanking the whole setup. So stuff like that I think is, important. The really the only missing piece. Core wise is that use entity block editor hook, if there was a, if I could refactor that to just allow you to save it in post meta instead, that would largely solve the whole, problem.
But I think there's another piece that I would also like to see, and that is, we talked about you have to do show template to see the actual block area. That, to me, feels a little bit
[00:27:31] Nathan Wrigley: You are reading my mind. That was gonna be my next question. Can we not just skip that step please? That just stick it when you click add post, just show me the template, give me all of the bits and pieces there. That'd be handy.
[00:27:45] Ian Svoboda: That would be, I like the idea. I, guess the one thing I don't like with my current plugin setup, and this is something I could probably solve for easily enough, like right now, but again, it's a hack. if you're in the block editor and you do the keyboard shortcut or you go to preferences and you say show code, you can see the block markup right in there.
What you can't do with this because it only shows you the stuff for post content. If you had your post meta feel that you were saving to down below, you could see it. and again, that's like a type of thing that not everybody even does. but it, I think it would be nice if there was a way to do this in court, and then there was a way where you could have a, maybe like a tab or it would be like a meta box down below the main area that you could just click to say, this is the block area markup, or looking at stuff.
This is all super easy to do. I don't wanna say easy, that's the wrong word. I think it's very doable. Like it wouldn't cause a monumental shift or break the way, the WordPress way of,
doing things.
[00:28:46] Nathan Wrigley: I've just had some intuitions about that. And so when I click the show template button in your, like in, in every other scenario, I wanna see the whole template, so I wanna see headers, footers, the content, all of that. But in your scenario, I probably don't want the headers and the footers. I just want, the, multiple content bits showing, if So I'd click some button. Or have that invoked automatically so that the con both content, I'm now getting carried away. I want four content areas.
[00:29:16] Ian Svoboda: Y you could do that with this block. I like the idea of the, I like the idea of being able to choose either or, because I think there's a use case
[00:29:23] Nathan Wrigley: Yeah. Yeah. Okay.
[00:29:24] Ian Svoboda: you picture you had, like in the example I was talking about with the news site, this block is just it's in the middle of the page.
It's in a group that goes like full width. So it's like the whole row. But if you say, had it in a sidebar. you might wanna know how wide is the actual sidebar or if you go to mobile or something and you wanna be able to see that. 'cause otherwise, if you just put it up in the editor where like it was the equivalent of the regular post blocks, it would just be way wider maybe than it actually displays.
But sometimes that's fine. It doesn't matter. And maybe that's better. But like having the option, it totally seems like a thing where we could have our cake and eat it too,
[00:30:05] Nathan Wrigley: So you'd have the sidebar showing as a sidebar and it would occupy the correct width. And if you start typing and it overflows, it goes onto the next line and it's narrow and that kind,
[00:30:14] Ian Svoboda: Do you wanna see an example? I have a screen share. I
[00:30:17] Nathan Wrigley: no, we, because we're only co recording the audio, there's very little point. It won't get,
[00:30:23] Ian Svoboda: okay.
[00:30:23] Nathan Wrigley: get, it won't get seen, but, okay.
Yeah. I'll tell you what though. if you wanna, I will link to anything that you produce that will demonstrate it, and I will put that into the show notes so people can, can go and see that.
[00:30:36] Ian Svoboda: We will send you, we'll provide a link to the
post
[00:30:38] Nathan Wrigley: yeah. Perfect.
[00:30:39] Ian Svoboda: I have a video where I show exactly how this
[00:30:43] Nathan Wrigley: Yeah, let's do that.
[00:30:44] Ian Svoboda: a very, it's a very simple visual experience and outta the box, like I said, if you're not particular about. What meta field it needs to save in or things like that.
It'll just work without any special configuration.
[00:30:56] Nathan Wrigley: you remember? you've got a lot of heritage, so it sounds like you probably will. Do you remember back in the day when Gutenberg, like when it was still a, wasn't in core when it was, they were just trying to figure it out? I remember this whole debate about like, where was, where even was metadata gonna be held?
The, there, there was no notion really about where that was gonna end up. It obviously ended up in a bunch of. Kind of box, almost like accordions underneath the content area. And there was flux about what would go into the sidebar, left sidebar, right sidebar, and so on. It feels like there was a missed moment right there where that your, idea could have actually just jumped straight into core.
because at that point nobody knew where anything was gonna end up anyway. So that would've been an interesting moment. had, had you had that intuition? it's probably like a decade ago now or
[00:31:44] Ian Svoboda: Yeah, I mean it's, yeah. I think, 2017 was the year it was actually included in core properly, so it would've been just before that. But I don't know. I think that, the, and I'm gonna speak just from purely my own opinion here for a second, but I think that they had a very sort of laissez-faire attitude towards anything that resembled a new or vastly different feature with this thing.
Like I actually, in the 2017 state of the word, I actually asked a question about. Like you could, if you look at the broadcast, there's good old me in there asking this question. I was asking like, what are we gonna do about responsive controls, like for, doing things at different breakpoints?
And Matt's ah, we'll see, that was eight years ago. Like the, and that's a type of, that's a very broad use case kind of feature. But I think that for a long time, the attitude for the core team has been, let's try to see what people try to make and what they want to do, and maybe use that to inform on our product decisions a bit instead of getting overly prescriptive too fast pluses and minuses to that perhaps.
But I think something like this would, qualify in there as a. we, need to make sure we do this correctly. 'cause if you do a feature like this wrong and then a bunch of people, millions of sites, start using it, it becomes very hard to reverse course on any of those things too. yeah, you're right though, like there's a point in time where you can sometimes make those things happen easier.
while we're here,
[00:33:15] Nathan Wrigley: Do you, do you have any intuitions of, of, doing like a pro version of this? So obviously at the moment it's on the WordPress org, REPL repo. It's content Hyen area, hyen block if you're interested. but it honestly, I feel that like your editorial team at the newspaper. I think there's a load of interest that you could generate with this, but whether or not you want to go in that direction, I don't know.
It seems like the sort of thing that once you've tried it and it works for you and your team, there's no way you're gonna go back to meta boxes. 'cause this feels like it's much superior.
[00:33:53] Ian Svoboda: Yeah. And I, I think that there's, as a side note, I'll try to answer this in a bit of a roundabout way, but, I think that using custom blocks. A sort of parent child relationship can provide a much better structure than just doing the post meta thing. sensei LMS actually does this kind of stuff where you have these different blocks and and it's all for all the block, all the lesson details are inside these different custom blocks that have, specific parent-child relationships.
So you can create, 'cause if you're using those things to create visual output in the first place. It's like, why not just do all of that upfront? So it makes way more sense and it's composable. You can put things, you can do variations, you can do styles, and it all becomes way less of a maintenance burden.
Now for me, I thought to myself. what should I do? Should I, and I wanted to, I think, first release this as a free plugin because I wanted to, I've wanted to do that for a while, but I've struggled with what am I gonna do? It feels like a lot of the ideas I had would either be like way too similar to, it wouldn't be different enough than an established solution to really warrant the effort.
And then, I don't know. I've always loved the idea of trying to give something back to the community because I have a course that I'm trying to sell, but I'm not doing that as a cash grabber, anything either. I did that because I wanted to make the thing that I wished I had years ago, stuff like that.
And so I was looking at this plugin as a good, because I already, I was paid to come up with the main concept for it already.
[00:35:27] Nathan Wrigley: Oh, I see. Yeah. With the
[00:35:29] Ian Svoboda: like I, it's not like I'm out a ton of time, having to bring this to people. And I thought that it would be, there might be other people out there who had the same thought like me, why can't we just, we can just do that, right?
And you, you can now, but not by default. And I don't know, maybe if there is, some way. To do that. Maybe I'd consider it in the future, but I didn't really do it with the explicit intent of making it commercial. I like the idea of that. If it makes sense and there's enough legitimate value that I could provide that would make it worth So yeah, I think the curious thing there is that because you are in WordPress all day, every day, and so am I, both of us have completely got over that hump of. Okay. It's a meta field. The data goes in there and it'll end up there. But like map, map that confusion, which like is actually really confusing, like the million times that people are logging into their WordPress website.
[00:36:28] Nathan Wrigley: Wouldn't it be, wouldn't it be great to just have the content right. Where you want it to be and to be, that you can heap this extra content area full of all the bits and pieces that you need and it's constrained and, only the blocks that you, the editorial team are gonna allow you to have are available.
Like it sounds like nothing. If you are an editorial team, that's like, how easy is that to teach the editorial? Not okay, you've gotta go through it. Yeah. Okay. We've told you this 15 times. You gotta fill that thing out down there if you want the video to appear. No, we're now on 24 times that we've told you, you've forgotten it over and over again.
Your system, you just, that hump has gone, I think it's, I think it's way more profound than maybe you are giving yourself credit for, to be honest.
[00:37:12] Ian Svoboda: hey, I appreciate that. I, thought, it was a pretty sweet idea. And, it's in general, like the type of thing that I, think a, non a person who doesn't have the baggage of like you were saying of this is how WordPress works. It's if it, if I'm just doing this in a way that makes sense to me, I should just be able to put stuff where I want and you could use this as part of a low or no code workflow.
To like if you're, say, if you're using like even a CF blocks or something to construct blocks like that where you're not coding all this stuff yourself. you could make your own custom blocks. You could say these are the only ones that are allowed to display there. And now you have a much more streamlined client experience.
if you're making this for other people or if it's for yourself. It's just way less work. I'm a developer. I write code all the time. I'm so comfortable with that. But at the same time, it's exhausting to have to make code updates and do a build and push stuff and all that just to make small changes or just to say, I want to have certain stuff over here, and like when I'm just popping into my own sites to make a, like I'm updating some lesson details or whatever.
I love the simplicity of
[00:38:19] Nathan Wrigley: Yes, exactly that, right? It's just something. So honestly, I think with the right, with a bit of a fair wind behind your sails, I think this could be a real hit. I think it's, obviously, I misunderstood it out the gate, but now that I've got a grip on it. I think it's a genius idea and honestly, I think why isn't this in core?
It just makes perfect sense. it's called Content Area Block. I'm gonna put the link in the show notes for a couple of things. The first one will be to actually the plugin itself. the next one will be to the video that you posted online, explaining how it all works and what have you.
That'll be the other thing. get an understanding if, if the website, if the.org website doesn't explain it clearly enough for you, which I am an example of that. but where could we find you, Ian, if we wanted to contact you independently to get some more data and more interest about how it works, where do we find you?
[00:39:14] Ian Svoboda: Oh, absolutely. I, anyone listening to this, if you want to ask me questions about it, or if you run into some kind of edge case, you're like, man, it'd be really dope if it did this. By all means. You can, reach out on Twitter, XI guess,
[00:39:26] Nathan Wrigley: Yeah. Yep.
[00:39:27] Ian Svoboda: So that's, my handle at basically all the things is Ian svo, like I-A-N-S-V-O.
[00:39:34] Nathan Wrigley: Okay.
[00:39:35] Ian Svoboda: there's also the, I made a post about this on my course blog, which I suppose we'll probably include as a link 'cause it has the video right at the top. I'm, you can put comments in there. There's comments on the.org, plugin directory. If you're into GitHub and you wanna make an issue or something and for the repo there, go for it.
Totally. All, all on the table. I want to try to make this thing as awesome as possible and as useful as
[00:40:00] Nathan Wrigley: a phenomenally good. so self-evidently good idea in my book. Ian, thank you for building it. Apologies for butchering
[00:40:09] Ian Svoboda: Hey, man. No, it's, no, it's fine. Like I said, I did, I feel like you were in the right there. I did not explain it
I hope that my explanation has been improved for more people as
[00:40:20] Nathan Wrigley: we'll meet in the middle somewhere. It was a bit of me and a bit of you, but, but now it's clear. Hopefully, go check it out. wordpress.org/plugins/content hyphen area, hyen block. You can go and find it there. Ian, thank you so much for chatting to me today. That's been great.
[00:40:38] Ian Svoboda: It's been a pleasure, man. Thanks for having me on.
[00:40:40] Nathan Wrigley: Okay. That's all I've got for you today. Thanks very much to Ian for chatting to me today. If you enjoyed that, or even if you didn't, head to wpbuilds.com. Search for episode number 458 and leave us a comment there. We really appreciate it when people leave us comments inside the WordPress commenting system, rather than shattering the whole thing across a bazillion different social networks. Again, wpbuilds.com, search for episode number 4 5 8 and leave us a comment there.
Just a quick recap. If you want to be advertising on this podcast, head to wpbuilds.com/advertise, or just send me an email [email protected].
We will be back next Monday for the live show. Tuesday, we'll package it up as a podcast, and we'll be back on Thursday for another episode, an interview just like the one you're listening to.
So that's it. You stay safe. Have a good week. Here comes some cheesy music. Bye for now.