# #136 Moving away from multisite ![Cover](https://wsrv.nl/?url=https%3A%2F%2Fcdn.wpcafe.show%2Fwp-content%2Fuploads%2F2026%2F01%2F09142219%2FPodcast-cover.jpg&w=500&h=500) ## Episode metadata - Episode title: #136 Moving away from multisite - Show: WP Café - Owner / Host: WP Café - Episode publish date: 2026-01-09 - Episode AI description: Two developers explain why they are moving sites out of a multisite setup and the technical pains that drove the change. They cover extracting a single site, large media challenges, and testing new hosts safely. They debate block editor versus custom blocks for maintainability and share local development tips. They also show practical AI uses for generating scripts, UI code, and client communications. - Duration: 49:22 - Episode URL: [Open in Snipd](https://share.snipd.com/episode/f40b020d-1d14-4105-bfc0-770ba42d463c) - Show URL: [Open in Snipd](https://share.snipd.com/show/3a84a651-3800-40f1-90d9-a3051e1e48be) - Export date: 2026-02-17T23:36:37 ## Snips ### [Consider Breaking Up Multisite Networks](https://share.snipd.com/snip/10002b9e-ea0f-4367-8b78-db41f163f62c) 🎧 05:46 - 15:29 (09:42) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/6c29f299-c23a-4c90-90b4-22bd71e84cea" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - Move high-maintenance multisite sites into separate installs when hosting and tooling block needed features. - Split sites to isolate backups, staging, and performance tooling for easier management. #### 💬 Quote > Multi-site is more of an afterthought for them. > — Mark Wilkinson Mark Wilkinson on common plugin and host limitations with multisite #### 📚 Transcript **Mark Wilkinson:** Do you want to introduce it do you want to introduce yeah mean i think you'll be doing most **Keith Devon:** of the talking so i guess i can sort of introduce it very briefly um our our big recruitment agency client um who we built site for about four or five years ago now i think. They've got multiple brands and they wanted a kind of unified sort of like design that they could tweak slightly for the different brands and stuff like that. So when we built the project, I mean, our head straight away just went, this should be a multi-site with a single theme, shared set of plugins, shared set of users. Multi-site is an absolute no-brainer. We're now about to pull that multi-site apart and put all of the sites on separate well probably on the same hosting plan but in separate WordPress installs um and it's been a bit of a journey to get there and I think we're still I wouldn't say we're 100 sure that this is the right thing to, but I think the balance has been tipped now, and the client has been convinced that this is worth trying. So we're going to give it a go. There's your intro, Mark. What did I miss? So I think we talked **Mark Wilkinson:** about this last week, last show, whenever that was, before Christmas. And like Keith, I'm not entirely 100% sure this is the right thing to do. I'm kind of 95% there now, I think, because I think the benefits clearly outweigh the downsides. So my issue with the multi-site setup is that every time you want to do something, and that's whether it's use plugin X or a feature of the hosting, they're just not set up for multi-site. They're never set up for multi-site. Now, granted, there are some plugins that are built for multi-site or have multi-site in mind and do things correctly for multi-site. But most people, most don't in my experience. Multi-site is more of an afterthought for them. And why would they? Because actually most WordPress users aren't using it. So I get that. So we're having problems with things like, our biggest thing is like, well, my biggest thing is local development. Like to try and pull a site down and to work on it, it's so difficult to do. Because the database is massive, and what is difficult about that? Because everything's in one database. Yeah. So the database is really big. You've then got to pull the whole thing down because you're only working on one site. It becomes difficult to manage in that sense. And then a lot of the tools on the hosting, they just don't work for the multi-site. So one example is the host has just introduced this really good feature where you can see site performance. It talks about page speeds and gives you lots of analysis, but it's only reporting on the primary site in the network, which we don't actually use. That's just literally like the holding site. It doesn't do anything. So it's utterly pointless. So it doesn't really help us. And stuff like that, deploying to staging, having a staging environment, creating a staging environment. These one click tools they have, they just don't work for multi-site or they don't, in our experience, they don't work. And think if we broke them into separate sites, it would give us more options for things like if something goes wrong, you're isolated to that one instance of it going wrong. If something goes wrong with one of the sites, we want to restore yesterday's backup. We can't just do it for that site. You're restoring the whole network. So, you know, the brands that have done changes since yesterday are going to lose those changes when actually was nothing wrong with those sites so i think it makes sense to split them in that instance um and i kind of want someone to sort of like tell me i'm wrong but no one really has people have come up with good reasons why we should stay stay in that sense and they're all the reasons i already know and i think actually they're not as good as the reasons to move. Things like the shared users, obviously shared code base, but we can get by that with other ways using Git and things, I I think the **Keith Devon:** users is the main thing for me. The code base is fine because, like you say, we can set up our deployment processes to deploy code to multiple servers at once. That's not really a problem but with users yeah i mean if they want to delete i'm just i'm saying this as i'm saying this i'm realizing actually that's not really much of a problem either for this particular client because there are only a handful of global users like super admins and yes and they can manage we are one or two uh we can manage having multiple passwords for six websites like that's that's not beyond the realms of like possibility and actually the the larger user kind of uh sets or consultants which are specific or employees team members are specific to those sites anyway so they're not we actually don't want them to be shared so actually from a user's point of view we're talking about maybe five people that access the all of the sites regularly so is that really a big deal? Not really, not when you've got password managers and things like that. Yeah, **Mark Wilkinson:** I agree. I think that's, again, negated by the lack of users that need that cross-site usage, essentially. So I've started to research how we go about doing this, Delicious Brains, which is now, I think, owned by WP Engine. I think that's how it works. I think there's still Delicious Brains, but I think there are WP... Because at the bottom of the website, it says Delicious Brains and it says WP Engine and everything. I'm sure it is. **Keith Devon:** I think Delicious Brains kept spin-up as a separate thing, didn't they? Because that's the same team. **Mark Wilkinson:** I think that's separate to Delicious Brains, though, I think. Yes, I think you're right. But it's the same. It was the same team. Yeah. Oh, well, yeah. They've kept that separate. That doesn't belong to WP Engine. Because obviously **Keith Devon:** it's... But obviously Ace, yeah, yeah, yeah. Obviously **Mark Wilkinson:** some other things went across. So they have a plugin, which many of you may have used, WP, it used to be called WP Migrate DB Pro. And now it's just called WP Migrate. And one of its features is that it can handle pulling and pushing multi-site instances in and out of networks and things like that. The earlier versions, it would work, but they were more of a manual process, whereas the new one's got this multi-site tools add-on if you pay for the sort of pro version. And one of the things it can do is you set up a migrate, and when you add the connection details in for the site you're pulling, which is the network, it then knows it's a network, and it gives you a choice of do you want to pull one of the sites out of here or are we pulling the whole network? So obviously I chose, we're going to pull one of these single sites out. And then you've got choices for things like, what do you want to pull? Obviously the database and it pre-selects the correct tables that you need to pull. So essentially they are the that are prefixed with the site ID and you need the users tables. So it pre-selects all those for you and then you can do your search and replaces which it kind of does for you because it knows what your local address is and it knows what your address was at the live site. And then you can choose to do the media, the plugins, the themes, the must use plugins, and so on. So I've been working on pulling that down to my local machine as a single site. And I came across a few hurdles. So the first hurdle was that the media library on the site is large. So there's about 13,000 items in the media library. And it kept crashing when it was essentially working out what media there was. So it kept timing out. And I think having chatted with the support, which was very good, it seems as though it runs out of memory, essentially. So bumped the memory on the server um and it kind of solved that problem which was good um then i ran into problems where i kept getting critical errors and that was because i was pulling down host plugins that wouldn't run locally they they gave errors so as soon as they got installed and activated it just gave up gave an. So that was a bit of a problem. And then the final thing was it kept timing out. I don't really know why. So they recommended just splitting it into different requests. So do the database, do the themes and the plugins separately, and then do the media separately. And that seemed to fix the issue. so I now have a working local copy of one of the sites on my machine which seems to work fine so that's kind of the process now for moving it to a different site now obviously if we were if we were going to do this for real we wouldn't be moving it locally probably we would be let's say signing up with a new host or a new hosting plan with the same host and then just creating an instance and then pulling it into that instance that's already live on the internet rather than doing that way so um so that's the plan so i've put that towards the client give them we've obviously already talked about the pros and cons of this i think we're all on board so it's just a matter of when we want to go ahead and deliver it. --- ### [Hosting Tools Often Ignore Multisite](https://share.snipd.com/snip/aa2d616f-0989-4892-aee4-01caa784b51e) 🎧 07:36 - 09:55 (02:18) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/50bfa7ae-be80-48e4-bf0a-597fd16adc90" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - Many hosting one-click tools and analytics ignore or mishandle multisite setups, reporting only the primary site. - That mismatch reduces visibility and makes multisite less compatible with modern host features. #### 💬 Quote > They're never set up for multi-site. > — Mark Wilkinson Mark Wilkinson on hosting and plugin support gaps for multisite #### 📚 Transcript **Mark Wilkinson:** They're never set up for multi-site. Now, granted, there are some plugins that are built for multi-site or have multi-site in mind and do things correctly for multi-site. But most people, most don't in my experience. Multi-site is more of an afterthought for them. And why would they? Because actually most WordPress users aren't using it. So I get that. So we're having problems with things like, our biggest thing is like, well, my biggest thing is local development. Like to try and pull a site down and to work on it, it's so difficult to do. Because the database is massive, and what is difficult about that? Because everything's in one database. Yeah. So the database is really big. You've then got to pull the whole thing down because you're only working on one site. It becomes difficult to manage in that sense. And then a lot of the tools on the hosting, they just don't work for the multi-site. So one example is the host has just introduced this really good feature where you can see site performance. It talks about page speeds and gives you lots of analysis, but it's only reporting on the primary site in the network, which we don't actually use. That's just literally like the holding site. It doesn't do anything. So it's utterly pointless. So it doesn't really help us. And stuff like that, deploying to staging, having a staging environment, creating a staging environment. These one click tools they have, they just don't work for multi-site or they don't, in our experience, they don't work. And think if we broke them into separate sites, it would give us more options for things like if something goes wrong, you're isolated to that one instance of it going wrong. If something goes wrong with one of the sites, we want to restore yesterday's backup. We can't just do it for that site. You're restoring the whole network. So, you know, the brands that have done changes since yesterday are going to lose those changes when actually was nothing wrong with those sites so i think it makes sense to split them in that instance um and i kind of want someone to sort of like tell me i'm wrong but no one really has people have come up with good reasons why we should stay stay in that sense and they're all the reasons i already know and i think actually they're not as good as the reasons to move. Things like the shared users, obviously shared code base, but we can get by that with other ways using Git and things, think. --- ### [Use WP Migrate For Site Extraction](https://share.snipd.com/snip/c1d7e141-e286-41f4-99d9-9983f4421da6) 🎧 11:52 - 14:44 (02:52) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/618fb485-5619-4b82-95e2-597c0b0d182b" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - Use WP Migrate's multisite add-on to extract single sites, selecting site-specific tables and users. - Migrate database, code, then media in separate operations to avoid timeouts and memory errors. #### 💬 Quote > It gives you a choice of do you want to pull one of the sites out of here or are we pulling the whole network? > — Mark Wilkinson Mark Wilkinson on WP Migrate's multisite extraction feature #### 📚 Transcript **Mark Wilkinson:** Yes, I think you're right. But it's the same. It was the same team. Yeah. Oh, well, yeah. They've kept that separate. That doesn't belong to WP Engine. Because obviously **Keith Devon:** it's... But obviously Ace, yeah, yeah, yeah. Obviously **Mark Wilkinson:** some other things went across. So they have a plugin, which many of you may have used, WP, it used to be called WP Migrate DB Pro. And now it's just called WP Migrate. And one of its features is that it can handle pulling and pushing multi-site instances in and out of networks and things like that. The earlier versions, it would work, but they were more of a manual process, whereas the new one's got this multi-site tools add-on if you pay for the sort of pro version. And one of the things it can do is you set up a migrate, and when you add the connection details in for the site you're pulling, which is the network, it then knows it's a network, and it gives you a choice of do you want to pull one of the sites out of here or are we pulling the whole network? So obviously I chose, we're going to pull one of these single sites out. And then you've got choices for things like, what do you want to pull? Obviously the database and it pre-selects the correct tables that you need to pull. So essentially they are the tables are prefixed with the site ID and you need the users tables. So it pre-selects all those for you and then you can do your search and replaces which it kind of does for you because it knows what your local address is and it knows what your address was at the live site. And then you can choose to do the media, the plugins, the themes, the must use plugins, and so on. So I've been working on pulling that down to my local machine as a single site. And I came across a few hurdles. So the first hurdle was that the media library on the site is large. So there's about 13,000 items in the media library. And it kept crashing when it was essentially working out what media there was. So it kept timing out. And I think having chatted with the support, which was very good, it seems as though it runs out of memory, essentially. So bumped the memory on the server um and it kind of solved that problem which was good um then i ran into problems where i kept getting critical errors and that was because i was pulling down host plugins that wouldn't run locally they they gave errors so as soon as they got installed and activated it just gave up gave an. So that was a bit of a problem. And then the final thing was it kept timing out. I don't really know why. So they recommended just splitting it into different requests. So do the database, do the themes and the plugins separately, and then do the media separately. --- ### [Use Custom Blocks For Complex Heroes](https://share.snipd.com/snip/23374b45-8190-48e1-8216-59fdbc911be0) 🎧 17:51 - 28:10 (10:18) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/c8effe5d-d935-4fde-9e24-1d21fee129df" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - For reusable UI sections, prefer a custom block (ACF or native) when responsive complexity exceeds core controls. - Use custom blocks to centralize design maintenance and avoid repeated editor tweaks across pages. #### 💬 Quote > Just because you can budge it together with core blocks doesn't mean that it's the right approach. > — Mark Wilkinson Mark Wilkinson debating block editor versus custom block approach for maintainability #### 📚 Transcript **Mark Wilkinson:** Now, this might go away once we don't have a network, but it won't because we will still be managing patterns across multiple sites. They just won't be in a network, but they'll be across multiple sites because those sites use the same theme, essentially. So what were you doing and what sort of challenges did you come up with so **Keith Devon:** this is actually for the same client and i think we've spoken like in previous episodes about the fact that a new designer came in and they've redesigned a few of the home pages across the brands um and they've got this new kind of home page design that they want to roll out across the brands with some with some tweaks um but essentially it's a lot of it's the same so taking like the hero section for example there's a new hero section and i built it nearly exclusively in the block editor with a tiny bit of custom CSS to handle just a few things that the block editor is not capable of. Doing that so that it's flexible for the client moving forward. It's kind of easy for us to build. And so I did that for one brand. Kind of signed that off. Went live. then and then it gets rolled out for some of the other brands and then one of the final brands who are actually like the pickiest of all of them like um i don't know who's in the leadership of that particular brand but they're always the ones that are super picky and things are a bit slower with them um so eventually it comes to their turn and meticulous **Mark Wilkinson:** maybe not picky meticulous yes uh **Keith Devon:** and the designer comes back and says actually you know can we tweak this and that and it doesn't look quite right at this break point or that break point and they're just yeah they're more meticulous when it comes to this particular brand so of course i can make those i can make those changes uh i go into the block editor and i change the padding and the margin and i i've had to add it's been really frustrating i've had to add some spacer blocks and things like that uh and i've had to use block visibility to only show those spacer blocks on certain break points. And those break points weren't necessarily aligning with like the WordPress column, like where it breaks from multiple columns into single columns and things like that. So it all got really messy making these fixes. So possible, but messy and messy partly because I'm not just using CSS. Like it's not like I've built some custom HTML and I've got CSS and I just tweak this thing over here and add a media query here. I'm trying to do it in the block editor. So that made it more complicated, especially because of this particular layout which has like overlapping and vertically overlapping images and stuff um and then it's like okay i fixed it on this page there's five other brands that are using this pattern that i haven't fixed all this stuff on and actually some of those brands are using this page are using this hero 10 times because they've got landing pages for each of their countries that they operate **Mark Wilkinson:** in regions yeah so **Keith Devon:** now i've got somewhere in the region of 20 hero sections that i now have to manually go back and tweak and it just comes back to this idea of like what is the best way to build these kinds of things to make them maintainable like you could argue well they are maintainable because i can go and make those changes but it's a very painful very duplicated process rather than **Mark Wilkinson:** you want to make those changes once don't you and **Keith Devon:** then in a theme in theme css or in a theme template file like that's but then but then doing it that way you lose all the flexibility that we have with the block editor and it's just this constant bat like battle and balance and it's i i i never think i'm getting it right you know i never think i've the solution or the right balance it's always oh maybe I should have built it this way or that way or maybe this should have been some kind of synced block but then if it's a synced block that doesn't work on a multi-site level like all this kind of stuff like it's just it's a bit it's a bit mind-blowing really and like should I have done way more of this with custom css rather than using dimension controls in the block editor because then I could just go and change the theme CSS instead of faffing about it in the block editor. All these questions. And I don't have the answers. Please, does someone have the answers? Please tell me. **Mark Wilkinson:** And I guess if it, because you can put block patterns in the theme, can't you? But I guess once you've changed the padding, margin in the editor, it no longer is connected to that. So if update the pattern in the theme, I guess it's got to be split, hasn't it? **Keith Devon:** And it depends what kind of pattern it is. Because if it's just a pattern in the theme that you dump onto a page and then you can add it to your heart's content, that's not helping. Because once those changes are made, they're made. But if it's a sync pattern and you can somehow change that in a PHP template or HTML template, maybe that would work. Honestly, I just don't know. I just don't know how to do these things anymore the right way. And maybe there is no right way. This feels **Mark Wilkinson:** like it must be solved problems like there's quite a lot of the enterprise agencies that are building wordpress websites yeah feels like this should be solved i wonder how they're solving these problems yeah and it'd be really good to get some content on this like if it's on like the wordpress developer blog how do we do this stuff because we don't know is **Keith Devon:** there anybody out there at that level that is putting out that kind of content anymore yeah that i'm just not that i'm not seeing because i i used to look to the likes of bill erickson or you know some of the yes some of the bigger agencies would put out more like how we built this kind of content. And I just, maybe I'm not looking, maybe I'm not exposed to it. Maybe it's out there. I know Human Made put out a lot of really good kind of general content, but I think understandably it's more focused on the clients. On the clients, yeah, definitely. Yeah, why WordPress is a great platform for enterprise, not how we built X in detail for developers like me. I would love for that kind of thing to start happening again. **Mark Wilkinson:** Hi, Nick. Nick says use a good old-fashioned ACF block instead of a pattern. I mean, it would work, but... I do wonder, for **Keith Devon:** that hero section, for example, should that have been a custom block where you add a background image, a foreground image, a title, a subtitle, a button, **Mark Wilkinson:** and I have fields for them all. But it just negates the problem of using the block editor, doesn't it? That's the whole point is like... But you can use the block editor for the **Keith Devon:** content. Do you know what mean? In the old-fashioned sense. I don't know. Because we use custom blocks for other complicated sections of the design. So why shouldn't I use it for... It's because I knew it was possible in the block editor that's why we didn't do it i saw that design i was like i can do that in the block editor maybe i should **Mark Wilkinson:** when we use a custom block it's usually because like you can't do it in the editor that's what i mean whereas so i have no other choice i have have to i have to go for some sort of custom solution there yeah but yeah i i i think i still want to use the block editor that's why it's there that's why it's been built that's why we're we've gone down that road if that makes sense but **Keith Devon:** looking back was that the right decision i'd say no for the hero for **Mark Wilkinson:** the hero just trying look at it now. I mean, it's just classic blocks. Except **Keith Devon:** it is, except when they say, but the breakpoints don't work here and there. And that image needs to go from a portrait to a landscape at this specific breakpoint because it doesn't work. And this overlapping section doesn't work on mobile and where it does work on desktop i don't have the responsive controls available to me so maybe at that point if it's like this is complex from a responsive point of view i can't use the block editor maybe maybe that's one of the kind of hard lines i don't know yeah **Mark Wilkinson:** mark says hi mark a custom block with or without ACF is the right way to go for custom page sections or hero elements like this. And then he goes on to say both in a second. Just because you can budge it together with core blocks doesn't mean that it's the right approach. Core block combinations and patterns aren't suitable for ongoing content maintenance. See, that's interesting. Aren't suitable for content maintenance, for for **Keith Devon:** content maintenance. I'd say aren't suitable for design maintenance, for content maintenance. Because surely **Mark Wilkinson:** there's a fundamental problem there with their block editor then. Or maybe there isn't. I mean, maybe it's still better than what we had. It is better than what we had. We were all using something outside of core anyway. So maybe they're right. Maybe Mark and Nick are right. That's just custom block territory. I **Keith Devon:** think knowing what I know today, that was custom block territory. **Mark Wilkinson:** Yeah. Yeah. Yeah. Yeah. Okay. Well, you learn something every day. **Keith Devon:** Yeah. **Mark Wilkinson:** If you've been having issues like this as well, we'd love to know how you dealt with them and what solution you chose. Yeah. And maybe the reasons for that. I think this would be such a good episode. Like, here's some layouts. Like, how would you do about this in the block editor? Or is that not block editor territory is that something completely different we could --- ### [Block Editor Led To Repetitive Fixes](https://share.snipd.com/snip/04453274-1bbc-47e4-9938-7b6592abe577) 🎧 18:10 - 27:44 (09:34) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/a051377a-5298-432e-802e-1cb12d5b671f" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - Keith built a hero in core blocks then had to tweak spacing, visibility, and add spacer blocks across ~20 instances. - The repeated manual fixes exposed the maintenance pain of complex block-based layouts. #### 💬 Quote > Now i've got somewhere in the region of 20 hero sections that i now have to manually go back and tweak. > — Keith Devon Keith Devon describing the maintenance overhead after rolling a block-built hero across brands #### 📚 Transcript **Keith Devon:** this is actually for the same client and i think we've spoken like in previous episodes about the fact that a new designer came in and they've redesigned a few of the home pages across the brands um and they've got this new kind of home page design that they want to roll out across the brands with some with some tweaks um but essentially it's a lot of it's the same so taking like the hero section for example there's a new hero section and i built it nearly exclusively in the block editor with a tiny bit of custom CSS to handle just a few things that the block editor is not capable of. Doing that so that it's flexible for the client moving forward. It's kind of easy for us to build. And so I did that for one brand. Kind of signed that off. Went live. then and then it gets rolled out for some of the other brands and then one of the final brands who are actually like the pickiest of all of them like um i don't know who's in the leadership of that particular brand but they're always the ones that are super picky and things are a bit slower with them um so eventually it comes to their turn and meticulous **Mark Wilkinson:** maybe not picky meticulous yes uh **Keith Devon:** and the designer comes back and says actually you know can we tweak this and that and it doesn't look quite right at this break point or that break point and they're just yeah they're more meticulous when it comes to this particular brand so of course i can make those i can make those changes uh i go into the block editor and i change the padding and the margin and i i've had to add it's been really frustrating i've had to add some spacer blocks and things like that uh and i've had to use block visibility to only show those spacer blocks on certain break points. And those break points weren't necessarily aligning with like the WordPress column, like where it breaks from multiple columns into single columns and things like that. So it all got really messy making these fixes. So possible, but messy and messy partly because I'm not just using CSS. Like it's not like I've built some custom HTML and I've got CSS and I just tweak this thing over here and add a media query here. I'm trying to do it in the block editor. So that made it more complicated, especially because of this particular layout which has like overlapping and vertically overlapping images and stuff um and then it's like okay i fixed it on this page there's five other brands that are using this pattern that i haven't fixed all this stuff on and actually some of those brands are using this page are using this hero 10 times because they've got landing pages for each of their countries that they operate **Mark Wilkinson:** in regions yeah so **Keith Devon:** now i've got somewhere in the region of 20 hero sections that i now have to manually go back and tweak and it just comes back to this idea of like what is the best way to build these kinds of things to make them maintainable like you could argue well they are maintainable because i can go and make those changes but it's a very painful very duplicated process rather than **Mark Wilkinson:** you want to make those changes once don't you and **Keith Devon:** then in a theme in theme css or in a theme template file like that's but then but then doing it that way you lose all the flexibility that we have with the block editor and it's just this constant bat like battle and balance and it's i i i never think i'm getting it right you know i never think i've the solution or the right balance it's always oh maybe I should have built it this way or that way or maybe this should have been some kind of synced block but then if it's a synced block that doesn't work on a multi-site level like all this kind of stuff like it's just it's a bit it's a bit mind-blowing really and like should I have done way more of this with custom css rather than using dimension controls in the block editor because then I could just go and change the theme CSS instead of faffing about it in the block editor. All these questions. And I don't have the answers. Please, does someone have the answers? Please tell me. **Mark Wilkinson:** And I guess if it, because you can put block patterns in the theme, can't you? But I guess once you've changed the padding, the in the editor, it no longer is connected to that. So if update the pattern in the theme, I guess it's got to be split, hasn't it? **Keith Devon:** And it depends what kind of pattern it is. Because if it's just a pattern in the theme that you dump onto a page and then you can add it to your heart's content, that's not helping. Because once those changes are made, they're made. But if it's a sync pattern and you can somehow change that in a PHP template or HTML template, maybe that would work. Honestly, I just don't know. I just don't know how to do these things anymore the right way. And maybe there is no right way. This feels **Mark Wilkinson:** like it must be solved problems like there's quite a lot of the enterprise agencies that are building wordpress websites yeah feels like this should be solved i wonder how they're solving these problems yeah and it'd be really good to get some content on this like if it's on like the wordpress developer blog how do we do this stuff because we don't know is **Keith Devon:** there anybody out there at that level that is putting out that kind of content anymore yeah that i'm just not that i'm not seeing because i i used to look to the likes of bill erickson or you know some of the yes some of the bigger agencies would put out more like how we built this kind of content. And I just, maybe I'm not looking, maybe I'm not exposed to it. Maybe it's out there. I know Human Made put out a lot of really good kind of general content, but I think understandably it's more focused on the clients. On the clients, yeah, definitely. Yeah, why WordPress is a great platform for enterprise, not how we built X in detail for developers like me. I would love for that kind of thing to start happening again. **Mark Wilkinson:** Hi, Nick. Nick says use a good old-fashioned ACF block instead of a pattern. I mean, it would work, but... I do wonder, for **Keith Devon:** that hero section, for example, should that have been a custom block where you add a background image, a foreground image, a title, a subtitle, a button, **Mark Wilkinson:** and I have fields for them all. But it just negates the problem of using the block editor, doesn't it? That's the whole point is like... But you can use the block editor for the **Keith Devon:** content. Do you know what mean? In the old-fashioned sense. I don't know. Because we use custom blocks for other complicated sections of the design. So why shouldn't I use it for... It's because I knew it was possible in the block editor that's why we didn't do it i saw that design i was like i can do that in the block editor maybe i should **Mark Wilkinson:** when we use a custom block it's usually because like you can't do it in the editor that's what i mean whereas so i have no other choice i have have to i have to go for some sort of custom solution there yeah but yeah i i i think i still want to use the block editor that's why it's there that's why it's been built that's why we're we've gone down that road if that makes sense but **Keith Devon:** looking back was that the right decision i'd say no for the hero for **Mark Wilkinson:** the hero just trying look at it now. I mean, it's just classic blocks. Except **Keith Devon:** it is, except when they say, but the breakpoints don't work here and there. And that image needs to go from a portrait to a landscape at this specific breakpoint because it doesn't work. And this overlapping section doesn't work on mobile and where it does work on desktop i don't have the responsive controls available to me so maybe at that point if it's like this is complex from a responsive point of view i can't use the block editor maybe maybe that's one of the kind of hard lines i don't know yeah **Mark Wilkinson:** mark says hi mark a custom block with or without ACF is the right way to go for custom page sections or hero elements like this. And then he goes on to say both in a second. Just because you can budge it together with core blocks doesn't mean that it's the right approach. Core block combinations and patterns aren't suitable for ongoing content maintenance. See, that's interesting. Aren't suitable for content maintenance, for for **Keith Devon:** content maintenance. I'd say aren't suitable for design maintenance, for content maintenance. Because surely **Mark Wilkinson:** there's a fundamental problem there with their block editor then. Or maybe there isn't. I mean, maybe it's still better than what we had. It is better than what we had. We were all using something outside of core anyway. So maybe they're right. Maybe Mark and Nick are right. That's just custom block territory. I **Keith Devon:** think knowing what I know today, that was custom block territory. **Mark Wilkinson:** Yeah. Yeah. Yeah. Yeah. Okay. Well, you learn something every day. **Keith Devon:** Yeah. --- ### [Prefer Reliable Local Tools And Fresh Starts](https://share.snipd.com/snip/b2a6907e-447d-4453-a0de-dc407cbe83e1) 🎧 28:56 - 39:10 (10:14) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/4c3465ba-28c4-4312-8d90-1825e667874c" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - Use a local tool you trust and can get support for; paid GUIs like MAMP can save time over terminal-based alternatives. - If local sites break, consider recreating them to get a clean, reliable baseline faster than endless debugging. #### 💬 Quote > It is going to be quicker for me just to delete the sites and recreate them. > — Keith Devon Keith Devon on resolving persistent Local WP corruption by rebuilding environments #### 📚 Transcript **Mark Wilkinson:** Where are going? Local WP issues. So we all have a local development environment, probably. I am a MAMP user. Sorry, old school i've used it for years and years and years and it kind of just works so i've actually just paid for the upgrade to mamp version number seven i believe it was 7.3 i'm now on which i thought was worth it um you get like upgraded php because i couldn't upgrade to past PHP 8.1, and I know the purists will just be saying, oh, you could install it yourself, you just do this. Well, it's just far easier to pay whatever it is, 70 quid, and then be able to get access to it and a button. So that's what I did. You don't use MAMP. I know you don't use MAMP. You use local, I think it's called, and you've been having issues. So tell. First of all, used to use map and i can't remember why i stopped i **Keith Devon:** can't remember oh **Mark Wilkinson:** there's your problem you see it **Keith Devon:** was probably i reckon it was a similar thing though it just something went wrong and i couldn't figure it out and and there was this new tool on the block and i was like okay i'll give that a go because that's i'm in the same situation now so for the last, I don't know, four, six months or something, whenever I've been starting up sites on local. Local is a WordPress-specific development environment by WP Engine. I think it was by Flywheel, but the WP Engine by Flywheel. I can't remember. **Mark Wilkinson:** Sorry, it it, it is WordPress specific, this local? **Keith Devon:** Yeah. It's not. It's, yeah, you start up WordPress websites. You click plus and you're adding a new WordPress website. And you can't **Mark Wilkinson:** use it for non-WordPress websites. I've **Keith Devon:** never tried. Right. It doesn't matter. I don't know. But when you hit that plus button, you're in WordPress territory. It not like do you want to install a wordpress site it's like okay yeah **Mark Wilkinson:** i have to just jump in my wife has just delivered me a beautiful uh blueberry muffin from little nice it's probably free free bakery **Keith Devon:** yeah it doesn't matter she could have eaten it she gave it good that's true that's love um so yeah so i i've been using it for ages no problem it does exactly what i want it to do i want to start up a new wordpress website i click a plus button i give it a name like website.test yeah i can set the php version if i want to fiddle with that stuff, I create the user. And under a minute, I have a working WordPress website that I'm logging into. It's really good. Recently, I was starting to get a few errors. So every time I'd like boot up one of my sites, there'd be an error. And then I just hit okay or cancel. And would just still work. I like, okay, I don't understand that error, but it seems to still be working and then just recently just before christmas i tried to load up one of my sites and this error came up and it just does not work so the site just doesn't start um and and then so i got into like oh my god what does this mean and i the error message really didn't make any sense to me at all it's talking about things that i don't know about um so i did what everyone does these days and stuck the error message into chat gbt and i just went down a rabbit hole of oh yeah this looks like it might be this okay let's type this command into the terminal Okay, type that command. Okay. I know where this is going. That hasn't worked. Type do this thing. Type this thing over here. Okay, that doesn't work. Okay, that makes sense. Try this thing. And we're like, okay. And then eventually I was like, I think I've deleted the website. I think it's deleted the database. Because eventually the error stopped, but it said cannot connect the database. And I was like, have we deleted the database? Is that how it's fixed the issue? So you asked Bob **Mark Wilkinson:** whether you deleted it. He said, yeah, yeah. **Keith Devon:** Oh, yeah. Yeah. And then I said, why did you get me to delete the database without kind of warning me that that's what was happening he's like oh well i didn't i didn't tell you to delete the database we simply did this which means the database was deleted it was classic ai do that scenario when people say you know uh ai is going to help like save the world. Um, but then there's the other scenario where you type in AI, can you please save the world? And it does it by like killing all the humans. Cause where are the problem? That's, that's kind of the situation. I feel like, yes, well done. You fixed the error by deleting the website. Thank you. So that's what happened. That was before Christmas, and then I didn't touch it again. I came back after the New Year, refreshed. I like, let's give us another go. I did give it another go with ChatGVT, just taking a slightly different angle. And it did seem to fix it in the end, but it was such an elaborate fix that it is going to be quicker for me just to delete the sites and recreate them. Because if I create a new site in local, it It's just the ones that exist currently don't work. So **Mark Wilkinson:** do you know the underlying problem? Like why is it that the current sites don't work and the new ones do work? No. **Keith Devon:** Right. I don't. Something about MySQL, but I don't know what. Like, it's not loading up properly. Something's corrupt. But I don't understand it. I really don't understand it. But, oh, my God, I was going around in circles and circles. It was so frustrating. **Mark Wilkinson:** It is so frustrating, isn't it, when all you want to do is just do your job. Yeah. And you're like, I can't do this thing because everything's just getting in the way. I'm to do **Keith Devon:** is fix a gallery issue on a client's website, and I've spent two days faffing around with local and Bob. It's so frustrating. Yeah. I **Mark Wilkinson:** know what you feel like. A few comments. Xlams, hi, thanks for joining us. It's quicker to set up a WordPress install on local WP. That's why I use it. And I think your experience would be the same until it doesn't work. It's been a really good product for you. I you've used it for a long time, which is good. And then Mark says, the same quick functionality is possible with Laravel Herd. Installing WordPress is a single command in the terminal. Terminal puts me off straight away. Usually work like PHP version switching or database maintenance, and SSL is in a GUI. I have to admit, I am fully GUI'd up. I don't want to have to do anything in the terminal. I need a GUI for whatever I use, which is what MAMP does to the most. The only thing I use the terminal for is WordPress command line stuff, which is quite useful sometimes. What do I do in there? Sometimes importing some posts or something if you've got a big import file **Keith Devon:** or stuff like that. I have to use it these days for zipping up plugins because if you do that just by right-clicking and compressing on Mac these days, it doesn't work on WordPress anymore. **Mark Wilkinson:** That essentially does for me. It didn't for me. Oh, have they changed that? Have they fixed that? they'd fixed it in WordPress, **Keith Devon:** yeah. Ah, okay. If anyone knows if that's been fixed, let us know in the comments. But yeah, okay. That's good to know. I **Mark Wilkinson:** thought they'd fixed it. I know you don't always update macOS as soon as me, though. So I wonder if it could be a macOS fix, or it could be a wordpress fix or it could be both i guess but it definitely works for me so yeah it's good yeah **Keith Devon:** yeah yeah interesting but yeah there you go so i'm in that kind of world at the minute where i feel like i feel like the next steps are just recreating everything and in some ways that's not the end of the world because you know when your local your local setup gets a little bit disconnected from reality yeah yeah so it's good to have a clean slate and **Mark Wilkinson:** start yeah fresh might not be a thing what if you do that would you keep the same tool though or would you go with a different tool i am tempted to keep **Keith Devon:** it because **Mark Wilkinson:** you know it it works most of the time yeah **Keith Devon:** yeah i don't know if something must have been corrupted or something **Mark Wilkinson:** weird's happened when you go for something new though you've always got that that same experience in a way that you've just had in that because i'm using this new tool the thing that i want to do took me like five seconds last time but now i don't know where it is i know it can do it i've got to find it so it now takes me five minutes and i'll take me five seconds next time i do it but always that isn't there to try and get over i **Keith Devon:** think though like you're using mamp which is a paid for product you get actual updates you get actual support locals free and there's there's no support. I mean, there's community support. I'm sure someone might jump on, but like... **Mark Wilkinson:** It gets up do, surely. **Keith Devon:** It does get up to do. I don't know how actively it's developed and supported, though. Whereas with MAMP, you're paying for it. That means something. I trust that more. Going forward. **Mark Wilkinson:** I it. I know it's kind of the... I don't know. Oh, you're using MAMP. Don't use that. There's something way cooler than that. It has just worked for me all the time. **Keith Devon:** That would be another good video. We could do you and me both setting up a wordpress site a development site you using me using local and and compare the process like it's one way easier than the other yeah it's one way because i don't know it could certainly go on the channel. Go on the YouTube channel, yeah. Cool. Anyway, --- ### [AI Wrote A Quick Meta-Key Migration Plugin](https://share.snipd.com/snip/d3a18d6e-031a-46bd-9bfd-7d1eab8e741f) 🎧 39:26 - 43:37 (04:10) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/6990b9a7-a8cd-4c5a-a60c-c0ba93104c2a" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - Mark used ChatGPT to generate a plugin that bulk-copies a meta key to a new meta key with batching and post-type filters. - The AI-produced plugin used nonces and batching and saved substantial development time for a throwaway tool. #### 💬 Quote > In about 20 minutes i had a working plugin that i could just convert one meta key to a new meta key. > — Mark Wilkinson Mark Wilkinson describing using ChatGPT to generate throwaway migration code #### 📚 Transcript **Mark Wilkinson:** I have. This week sometime? It can't be yesterday. It must have been the day before. So we had a support question come in, and the front-end radius-based search wasn't working. There was actually multiple reasons. The primary reason was that the API keyi key was like not allowed on the website so we had to sort that out and do the correct referrers so it was allowed to use on the website but once we'd done that the front end worked but it wasn't actually finding any jobs so they type in london select london from the working front end and then it wouldn't come up with any jobs even though they had jobs that were in London. And the reason for that is because they weren't geolocated properly, and it was all to do with a changeover in API keys. And the same issue on the front end, it wasn't pulling. So a new job comes in, the API key wasn't working, so it couldn't geolocate it as that job was saved. However, they are using our job relay products and every job, asterisks, not every job, but most jobs who come through job relay, we geolocate the job. And the data that we gather is then sent onto the website and they can use it. So the data was actually there and it was stored as post meta. But the problem was is that the tool on the front end, I think it was RecPress, was looking for different meta keys than where the data was saved. So this client had 100 jobs, I think it was. So I sent them an email back and I explained what happened and I explained the solution. And I said, you've got 100 jobs. This is going to be like a go in and copy paste job. Just go in and change the key names using the post editor. It's the easiest way to do it. I could build something, but I'm going to have to bill you for it and it'll be a while. So they did that. They were fine. They said, thanks for your help. And they went through and did it and it was great. But then I just thought, I wonder what AI can do for this. So I just jumped into the chat GPT. I typed in the sort of thing I wanted to do. I had lat long saved as, I think it was job relay latitude, job longitude, and I wanted it as a different name. So can you just write me a script that will do this? Yeah, yeah, no problem. Off he went, wrote the script. And it kind of worked. And then I thought, well, what about like if I actually, because I just told it the keys, you know, this is the old key, this is the new key. I want you to copy it across to the new key so it's existing. And I said, well, what about making a little settings page so I can just type in the original key and the new key I want you to save it to. Yeah, yeah, no problem. Can do that. Off he went, did that. Saved it, tested it. Perfect. Then he'd added like batching them. So in like posts, 200 posts at a time, because he told me, he's like, this might not work if you've got 10,000 posts because it'll time out. It's perfect. Did that. And then I was like, what about if I only do it with one post type? Like, let's say i've got these keys across all post types but i don't want to do it for one post type yeah i can have that for you so in about 20 minutes i had a working plugin that i could just convert one meta key to a new meta key um and how long would that have taken me it would have taken more than 20 minutes maybe an hour maybe an hour and a half. **Keith Devon:** Maybe a lot more. **Mark Wilkinson:** Maybe a lot more. I mean, I probably could have done the sort of rough and ready one that did a set key. Yeah. But yeah, so that was something I used it for this week. Didn't actually use it in earnest in terms of on that site because he'd already done it, but I thought it'd be interesting just to see how long it would actually take. And stuff like that, it's kind of really good for, because it's almost like, it's just, it's like throwaway code in a way. You know what I It doesn't have to be perfect. It just has to do the job that you want it to do. I had a brief look through it. It looked like it was using things like nonces and escape functions. So it was, I haven't reviewed it, I haven't wrote it in detail, but for a quick install, do the job, take it away, it seems like a good use of it. --- ### [Treat AI Code As Drafts You Review](https://share.snipd.com/snip/3ad2932c-4fa3-477a-b4c7-5cbb896777ee) 🎧 43:40 - 45:23 (01:42) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/69de70e7-3220-49c6-8e3c-d078aaaeca61" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - Use AI to generate quick UI/JS prototypes (e.g., calculators or popups) and refine them before production hardening. - Always review and test AI-generated code; treat it as a time-saving draft, not final production code. #### 💬 Quote > It gave me the html to css the javascript i put them into code pen ... and it worked. > — Keith Devon Keith Devon on using ChatGPT to recreate a calculator UI quickly #### 📚 Transcript **Keith Devon:** I haven't done throwaway stuff. I mentioned it on a previous show um i used it for some client work where they asked for like this kind of calculator it was an admissions calculator for a school and it was uh they wanted they'd seen something that another school had on their website and you kind of select the year of birth of your child and then it gives you all the information about when you would apply for the school at various stages. And it was remarkable. So I basically, I think I gave ChatGBT a couple of screenshots of the, of the tool that was on the competitor website the other school website and so i want to i want to kind of recreate this and i want you to give me the html css and javascript um that i that i can add to code pen and it'll work and it gave me the html to css the javascript i put them into code pen in the boxes and it worked and the ui was like similar to what was on the the school the school website in terms of like the layout and everything it was it was amazing and i've i've used it for something else for another school site what was that it was some pop-up. Some pop-up one of the schools asked me to do. And I basically said, can you do this for me? And it was bang, done. I was like, okay. That would have taken me a while. But it was done in seconds. Yeah, **Mark Wilkinson:** there's definitely use cases for it. --- ### [AI Speeds Routine Work But Risks Inauthenticity](https://share.snipd.com/snip/e5d22cbe-f230-41f1-896c-3d13685f9b80) 🎧 45:23 - 47:43 (02:20) <iframe src="https://share.snipd.com/embed/obsidian-player/snip/ba28f47a-6a13-4ad9-b2ab-a2fe7ada47fb" width="100%" height="100" style="border: none; border-radius: 12px;" sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-clipboard-write" ></iframe> - AI excels at practical, non-critical tasks like client copy, golf research, and prototyping, speeding routine work. - Overreliance risks hollow, inauthentic client communication and must be balanced with human judgment. #### 💬 Quote > I almost just didn't give it the time of day like because i was like these aren't your thoughts. > — Keith Devon Keith Devon on receiving clearly AI-written client emails and the loss of human voice #### 📚 Transcript **Mark Wilkinson:** know, completely non-code and non-WordPress related, I've been using it for stuff like, for golf. So I was looking at some new irons, some golf clubs that were, they were like reviewed and stuff. And they're supposed to be really good. And they were quite cheap. They were like a massively different entry price to like what the top brands are using. Yeah. But I was looking at, I was like, I don't what like shafts i would get in them because so i literally read the specs of my golf shafts to chart gp and said can you tell me like what what's equivalent spec on this one it's like oh yeah no problem yours are this they've got this flex they've got this you know this stiff length of them is this these will be the most appropriate because of this and this and this and this it's like that would have taken me ages do you think it's right though i do i do yes i do um i i i am suspicious like you and i thought you'd say that yeah and i would i would never hesitate i would never say just believe it straight away i think if you had no knowledge of this thing you probably don't want to trust it straight away but i do think it's right in what it's saying um the other thing i had was back to golf again so my driver has an adjustable loft sleeve so you can take the take the shaft off the head and then if you turn the the shaft before you put it back on it does things like changes the lie angle of the club and the loft on the club but on the end of the shaft it just has like plus plus plus minus minus so i was like i don't really know what they're doing so i just literally took a picture of it and said to chat gpt can you just tell me what the difference is between these and he's like oh yeah you're using the ping such and such a thing it's got this such a system give me a big table of all the options you know you want to use this setting if you're pulling it left you want to use this setting it's like that sort of stuff's really good yeah just all the other uses for it that i've been been using it for but yeah **Keith Devon:** communications for me like you've written a reply to a client or to anybody, and it's just like, it just doesn't flow, right? I've got the information there, but it just doesn't read properly. I'm just dumping that in. I'm using it all the time for stuff like that, which is good. --- Created with [Snipd](https://www.snipd.com) | Highlight & Take Notes from Podcasts