Blackbird

23: Transitions, Templates, Transcripts

23: Dev Chat "Transitions, Templates, Transcripts" Season 3

Anchor.fm | Breaker | Castbox | Overcast | Pocket Casts | RadioPublic

Cory and Phil kick off 2023 with a look at what we changed about our custom theme workflow last year, including a particularly vigorous discussion about template tags, and some goals for new things we want to try this year. We also couldn’t help talking about admin page redesigns. And there’s even a question for you, dear listener, about social media.

Clips

Links

(5:25) Blackbird’s Theme Scaffold: https://github.com/BlackbirdDigital/wp-theme-scaffold
(19:19) GulpWP: https://github.com/BlackbirdDigital/gulp-wp
(51:05) Yoast design system tweet: https://twitter.com/jdevalk/status/1618152402489856003
(59:12) WPTavern Ninja Forms 3.0 release: https://wptavern.com/ninja-forms-3-0-released-features-new-drag-and-drop-form-builder

Transcript

Cory (00:00:15):
Welcome back to season three of In The Loop, a WordPress Agency podcast by Blackbird Digital. I'm Cory Hughart, and in this episode, Phil Hoyt and I kick off 2023 with a look at what we changed about our custom theme workflow last year, including a particularly vigorous discussion about template tags, and some goals for new things we want to try this year. We also couldn't help talking about admin page redesigns. And there's even a question for you, dear listener, about social media. If you have questions about WordPress, website development, contributing, or anything else web-related that you'd like to hear us discuss, send an email to [email protected]. You can also find us on Twitter as @InTheLoop_WP. Blackbird Digital is a web and app development agency that specializes in WordPress, creating onscreen experiences that connect, teach, communicate, and inspire. Visit https://blackbird.digital for more information. Enjoy the show.

Cory (00:01:18):
Welcome back folks. It's 2023. Glad you're back with us. And, uh, of course, welcome back, Phil.

Phil (00:01:33):
Hey,

Cory (00:01:36):
Uh, so it's a special day today.

Phil (00:01:40):
Because it's the 1st of February?

Cory (00:01:43):
No, not today. I mean, the day that this is launching, I'm speaking as if we're in the future

Phil (00:01:47):
We're in the future now. Okay.

Cory (00:01:50):
I mean, the present, we're in the present.

Phil (00:01:51):
We're in the present. If you're listening to this, the day it comes out it is a special day. Yes, this is true.

Cory (00:01:57):
Do you know, do you know what day it is?

Phil (00:01:59):
The Day of Love?

Cory (00:02:00):
No, no, no. It's not that

Phil (00:02:02):
One. Oh, no. I'm really fumbling

Cory (00:02:05):
<laugh>. No, it's okay. I'm just messing around with you. It's, uh, it is Half-Price Chocolate Day.

Phil (00:02:11):
Oh, wow. Yeah. It is, it is.

Cory (00:02:13):
Indeed. It's one of my favorite. Yeah.

Phil (00:02:14):
Run down to your local convenience store and get yourself some heart shaped cheap candy for sure.

Cory (00:02:21):
Heck yeah. Just 50% off all the really fancy stuff. Just, you know, days, days don't matter. Yeah. Just go the next day and you can have twice as much.

Phil (00:02:33):
No, I don't celebrate anything, you know, just make a random day special. But <laugh>, are you a dark chocolate person, Cory?

Cory (00:02:40):
No, but my wife is, I mean, I'll eat it. Of course. Yeah, sure. I'll eat anything, honestly. But she's definitely, she has preference for the dark chocolate, and I have a preference for like, the wimpiest milkiest Swiss chocolate, that's my kryptonite. Not cheap necessarily, but, like, yeah, the Swiss stuff, it's really good.

Phil (00:03:02):
All righty.

Cory (00:03:02):
<laugh>

Phil (00:03:03):
<laugh>. Well, I hope you get to pick some up after the recording.

Cory (00:03:07):
<laugh> in, in like, a week—

Phil (00:03:09):
In the future

Cory (00:03:11):
Alright, so, um, oh, and speaking of the day, that has not even been named

Phil (00:03:18):
<laugh> <laugh>

Cory (00:03:20):
Last year, we did a little cutesy thing about: hey, it's Valentine's Day. I think it was coming up at the time, and like, you know, go—

Phil (00:03:30):
We were a little bit more on the ball on when we were releasing the episode, and we were doing a Valentine's Day special where we were encouraging people to leave reviews on their favorite WordPress plugins. Uh, show them some love, and yeah, while we're not maybe getting this episode out in time for that, I would say if you are listening to this, uh, maybe go open up a few tabs and, uh, go find your favorite plugins in the plugin directory and, uh—

Cory (00:03:52):
Or go find the tabs that are already open.

Phil (00:03:54):
Yeah. And show them some love. Just give them a good review. Leave a nice, uh, note to the developers. You know, that kind of stuff goes a long way when people are deciding what plug-ins they install and, uh, yeah. brighten their day a little bit.

Cory (00:04:08):
Especially if it's something that you use for like every site and you've never reviewed it. So yeah, there's our, there's our PSA for the starting the year.

Phil (00:04:16):
Go leave a review on your favorite plugin.

Cory (00:04:19):
All right. With that out of the way. So, I don't want to dwell too much on last year. We already did the last episode that we put out last year was kind of a listening back to clips of, you know, all the episodes, all the interviews that we did, did we listen to the dev chats? Either way, it doesn't matter. <laugh>. Um, you know, so go check that out if you want like a great kind of overview of the last season and the really interesting folks we talked to and what we talked about. Generally speaking, um, this time, uh, for the first episode of 2023, I just want to kind of take the time to look at, you know, what did we change right. In our development process, mostly dev-focused here right. Throughout the year that we're starting as a baseline, you know, we're starting with as a baseline this year. Right. Just to start us off with that. Uh, not that this is like a report of, you know, what we accomplished necessarily, but there were 24 merged pull requests into our theme scaffold for 2022. So that's average, you know, twice a month. I think that's, that's not too bad.

Phil (00:05:41):
Yeah. Maybe, I mean, just to explain the theme scaffold really quick, but that is like the scaffolding, the thing that we start with to build most of our client sites with, um, that Cory has leaded on, and I've made a handful of pull requests over the last year mm-hmm. <affirmative>, and yeah, we were able to, to get a lot of progress on improving that over this past year. 2022 was a very active year for it.

Cory (00:06:03):
Absolutely. Um, I'm not really gonna get into like all the random, you know, things that we did change, but, uh, we'll put the link in the description like we always do if you're interested in checking it out. But some of like the high level things, I think, that we, that we started doing. I think one of those is, you know, more and more reliance on `theme.json`, right?

Phil (00:06:28):
Yeah. Yeah, `theme.json` was a heavy hitter, uh, for sure. I remember building like the first few, like, I guess we call 'em hybrid themes, but, you know, block based things where the center is mostly blocks and the header and footer are, you know, uh, PHP templates and you're still using PHP templates in most places, but using blocks everywhere else. And, you know, there wasn't a theme.json you kind of had to hand roll your own styles for a lot of these core blocks and core functionalities, such as your layout and whatnot. And, um, yeah, the theme.json is coming in clutch. These, these days, you know, you kind of just plop in some, um, settings. You can change them pretty quickly on the fly to kind of adjust your wits and layouts and, um, you know, responsive text and spacing and sizing and stuff like that. So you can—

Cory (00:07:16):
Fonts!

Phil (00:07:16):
Yeah. Font. Yeah. Upload your fonts. Um, yeah, big, big stuff. Uh, you know if you would've told me, the year before that I'd be writing a lot of styling in a JSON file, <laugh>, I would've called you crazy. But, you know, now that I've actually published a few full site editing themes also, you know, I don't even write any CSS on some of those because you don't have to, you can go down to the granular element level and, you know, select what element you want to style and using some JSON get it to the style you want to be.

Cory (00:07:52):
Yeah. There's, there's definitely a lot of choices that, you know, I made early on when we kind of created the theme scaffold new a couple years ago. Um, it was mostly because `theme.json` had become a thing I wanted to integrate that into, you know, how we were doing the hybrid themes and full site editing wasn't even—well, maybe it was, but either way we were still, you know, um,

Phil (00:08:23):
There was, there was a period of time when you couldn't use `theme.json` in a non-full site editing theme <laugh>.

Cory (00:08:31):
Yeah. Right. So, one of those things is that there's kind of like a system built in Sass to kind of read parts of `theme.json`, but it was in a very limited sense. Everything had to be in the `custom` area of the settings of the `theme.json`. It doesn't read in general, you know, all of it. So it's starting to feel a little bit strained maybe. That system, relying on that is, you know, kind of different than how WordPress has evolved to want you to just kind of define things for styles and things like that for the blocks. And there's of course a lot of utilities and stuff in the theme styles for, you know, like buttons and stuff like that that, you know, I did in a response to, you know, the fact that you can style buttons, but still needing buttons to do things differently than what WordPress wants or Gutenberg wants anyways, out of the box with button styles and Yeah. I dunno, more work to be done there.

Phil (00:09:37):
Yeah. I think it'll only keep evolving this year to come as `theme.json` gets better and is able to do more capable things. We'll probably slowly start backporting our old ways of handling things to the newer ways of doing things. Um, you know, something that we've already done recently where, recently changed the way block patterns work, there's a pull request, actually, I think it just needs merged in right now. Where, you know, the old way of doing it was registering them with PHP and, um, you know, slapping 'em inside that function and doing all that good stuff. But, uh, that is no longer really the modern way of handling it. Now. There's just a folder called patterns and, um, you can just throw your patterns inside of HTML files inside of there, and they load up for you. And that is a much faster way of handling it than trying to—

Cory (00:10:28):
Yeah, for sure.

Phil (00:10:28):
—put it into a PHP one. So, yeah.

Cory (00:10:30):
So look forward to that change. It's mostly just a removal, a new folder, but there you go.

Phil (00:10:36):
<laugh>. A rethinking. Yeah.

Cory (00:10:39):
Um, speaking of rethinking, I think that 2022 really was the year of aligning the entirety of the sort of Blackbird approach to designing, to building sites that it, you know, not just about how we as developers are approaching, okay, how do we code this? How do we build this? But also the, you know, before you get to that part, the design aspect of, you know, just how do you most efficiently, let's say, design websites for this, you know, this particular editor and the way that it does blocks and, and how we handle what's the theme versus what's the content and all that sort of stuff. So that's, that's been interesting.

Phil (00:11:24):
<laugh>. Yeah. Uh, I'd say like, yeah, this is the first year where I felt like design was taking the core blocks into a much greater consideration than maybe they had in the past, mainly cuz they didn't exist in the past, um, yeah, I saw a lot more designs come my way that felt like, you know, seeing them through the lens of, of Gutenberg or the block editor and laying things out in the way that the block editor likes to see in the past. We kind of got away with, having more unconventional layouts and designs because we were, for lack of a better term, hard-coding, those things into the template. Um, you know, we were trying to give it, make it flexible in certain ways, but, you know, not nearly as flexible as the block editor

Cory (00:12:10):
Right. Absolutely. And yeah, I think that, you know, this kind of paradigm shift has only been possible because of collaboration between developers and designers and, you know, I want this to not be the case in the industry at large, but I have a feeling that that doesn't happen as often as it probably should. I feel like the norm is for the developers to exist in one place, you know, over here in this office or at home or whatever and a design to, you know, all of the needs that the client has and information architecture and, you know, wireframing, design, whatever, it all happens over there and then it gets passed to a developer to say, 'here you go now, now you build it'. And by that point, it's too late. The client has seen it, they've approved it. You know, the developer can't say, um, actually, that part's gonna be really hard, <laugh> <laugh>, you know?

Phil (00:13:17):
Yes. Yeah.

Cory (00:13:18):
Not impossible, but it's gonna be real awkward with, you know, the particular tools that we might be using or whatever the case may be.

Phil (00:13:25):
Yeah. While you can build practically anything you can imagine inside of Gutenberg, the block editor or WordPress in general, it's some kind of sunken cost kind of going on there where, you know, it might be easier to utilize core blocks in a different way. And I feel like we've had a lot of intentional conversations with our designers and come up with ways to make sure that lots of the content is, you know, doable with blocks and similar to maybe past conversations I had maybe many, many years ago where you talked about like how a category page lays out and the template hierarchy and to design for those. And now we're kind of having those conversations again around core blocks.

Cory (00:14:10):
I mean if I've got the wrong impression, you know, if your agency is also doing this very close-knit collaboration between developers and designers for, you know, sites for WordPress sites and stuff like that, I'd love to hear about it. Let us know. Tweet us at, uh, @InTheLoop_WP <laugh>.

Phil (00:14:31):
Yeah. We'd love to have a behind the scenes look at how another agency, how their workflow works.

Cory (00:14:36):
Absolutely. Um, and I think part of what is historically continuing to come in clutch for us enabling the more, let's say bespoke, design when we do our development in WordPress is good old Advanced Custom Fields, but not just the plugin overall, but specifically moving to an Advanced Custom Fields Blocks v2 version two of how they're handling blocks.

Phil (00:15:12):
Yeah. ACF: plugin of the year every year, <laugh> forever. So, yeah, they've of course changed over to their version two of how they handle blocks, which is a lot closer coupled to the way blocks are registered in core. Um, so you are no longer kind of, while you still can, you're not registering the block, as manually in PHP and you are defining it by the `block.json` And that kind of at least tethers you to the way core handles things, which is an interesting paradigm shift, because that gives you a, you know, it's a lot more componentized if you've not used it yet. How blocks work or how the new ACF blocks. You're creating a dynamic block where you have a PHP template, a JSON file, a CSS file, and a JS file that kind of all can kind of work together in synergy, um, to create your block.

Phil (00:16:06):
And the really nice thing about that is something that you weren't getting out-of-the-box before was that those files now load conditionally based on whether that block is present in your template or not. So if you are loading the block that you created on the page, it is then loading the CSS and JavaScript that you created for said block versus the older way where you might have, like, put that JS in your `theme.js` or your `style.css`, where it's kind of globally loading. And, um, yeah. So it's quite, um, it's a lot more flexible now in that way. Uh, that being said, I'm still trying to figure out the best way to play ball with that when it comes to like, you know, we're using Sass for our css, which of course gives you variables and a million other things, and out-of-the-box you don't really get those.

Cory (00:16:56):
But you can.

Phil (00:16:57):
But you can <laugh>, we just gotta, I'm just trying to figure out the best way to handle it.

Cory (00:17:00):
Yeah, I think I've got maybe that sorted out, but I wanted to just put a point on the fact, uh, what you were talking about in terms of these files that are all related to this one particular functionality all being in the same place. I think in the broader industry that's called colocation. Right?

Phil (00:17:23):
Okay. Yeah. Sure.

Cory (00:17:23):
So colocating all of the bits of code that are all working together towards this particular common goal of making this particular block, they all exist in a single folder. You don't have to go searching for like, okay, so I need to find the template part that is outputting the PHP part of this block, and then I need to go find the styles of it, which is in this Sass folder, <laugh>. Sure. And then, oh, here's the JavaScript, I gotta go find it in the JavaScript folder, all that sort of stuff. Sure. It's a paradigm shift that I have been working towards, you know, doing in everything. Um, and still trying to figure that out with WordPress themes in general, but the block-based approach has helped, you know, that's just a no-brainer right there.

Phil (00:18:13):
Yeah. The way core blocks want you to work is this new paradigm shift. And, you know, it is still a very complicated, um, it's kind of self-policing to do it the other way and kind of has a lot of obstacles in it's way to try to accomplish that. It'd be great to have like, you know, a `header.php` and right next to it was the `header.scss` And, you know, `header.js` file or something that handles something inside of it or whatever. But, the reality is that is a lot more difficult than just kind of structuring your folder that way.

Cory (00:18:49):
Not impossible. I mean, maybe, maybe 2023 is the year that we figure out colocation.

Phil (00:18:57):
Yeah. Maybe start making some strides towards it for sure.

Cory (00:18:59):
<laugh>. Yeah. But blocks have been helping. But to the point of, you know, Sass functionality that we have, again, like this, our Sass still lives in a styles folder for the majority of the theme. The JavaScript is still in a scripts folder, et cetera. Um, however, with an update actually that came out last year for GulpWP, which is the companion project, I guess you could say to the scaffolding that we have is just a kind of standardized way of handling a WordPress theme, workflow in good old Gulp. Gulp is still around, it's still useful <laugh>. Um, and I won't dwell on why we created that. You can go check it out if you'd like. But, one thing that was included last year was a task specifically meant for blocks for a workflow for that.

Cory (00:19:53):
So there's a specific folder that you're keeping the blocks in and that can be customized to point to whatever folder you want. But, it'll handle things that are very specific to the way that blocks are structured in this co-located sense. Right. Um, one of the things that does happen to do is it actually reads the `block.json` to figure out if you have, you know, linked like a style or a script asset, and it will make sure to then pull in that file and process it into the CSS or the JavaScript. So that's kind of a neat feature that's not really in the core, scripts package. It's still using WP Scripts underneath to do the actual transforming of the files. Um, but also you know, getting back to the Sass thing, right? You can actually import, since our Sass is also using the modern Sass approach of modular Sass modules, you can actually in the Sass files in this separate folder, you can, it's a <laugh>, it's a little bit cumbersome, right? Cuz you gotta do a lot of.dot slash.dot/you know, whatever, and then get into the, the source or the, um, the-

Phil (00:21:08):
Correct directory

Cory (00:21:08):
Yeah. The style directory. And then you can import any of those tools or whatever that we have in the main styles folder in order to use it in the box. And the thing that's kind of cool about that is that these, the style file is separate from your main theme file. So, like you said before, if the block is loaded on the page, that's only when the block styles are loaded, right? Yeah. And, you know, it'll only when you do an import of another Sass file or module or whatever, um, it's not gonna pull in the entire theme styles. It's only gonna pull in that module and whatever you have within it. And so, super useful, super handy. I dig the modular approach, the colocation approach, all that good stuff. It's coming to a theme near you, <laugh> <laugh>, as long as you're still using a hybrid theme. I dunno, I guess you could do it in a full site editing theme too.

Phil (00:22:01):
I think hybrid themes are gonna be very useful for a long time to come. You know, PHP is still a very powerful programming language for a lot of reasons.

Cory (00:22:11):
For sure. And then we come to one of the most, I think one of the best parts of what we changed in our scaffolding last year,

Phil (00:22:23):
I like this change a lot because we both arrived at it at a very similar time like, we were both working on some kind of project and we both hit this like wall. We're like, why are template tags functions <laugh>? Why are they just kinda dumped into this file? And if you ever want to edit them, you have to go and kind of like escape your code. Do all this craziness to kind of get the layout changed. Um, and why are they not template parts? Uh, you know, they would perform a lot better as template parts and be a lot more editable

Cory (00:22:58):
Mm-hmm. <affirmative> as part of this sort of modular approach that's been bleeding into a lot of things that we're doing. Right. Um, template tags are out, template parts are in, right? Yeah. <laugh>.

Phil (00:23:09):
So especially now that you can pass arguments to them.

Cory (00:23:11):
Exactly. And that was a huge aspect of it. I think I might have talked way back maybe two years now at this point, how I had to come up with my own component system in PHP so that I could essentially do the whole template part thing, but pass arguments and then, you know, that change came out for the Template part function. Great.

Phil (00:23:34):
Cory has a long history of creating solutions that then get solved like a year later by core.

Cory (00:23:40):
Maybe that says something about how I should maybe be spending my time.

Phil (00:23:46):
You're bleeding edge, Cory. You need to get in there and get your hands dirty.

Cory (00:23:51):
Anyways, so yeah, this is something that I have not seen anyone else doing. Uh, and this is something I think that we can be part in particular proud of. And I want to get other folks feedback about this, if you're doing classic or hybrid themes like we are, are you still using template tag functions and why?

Phil (00:24:16):
Sure. It seems like this relic because you know, you download underscore. Download the default theme. You look at how they're built, blah, blah, blah, blah, and you import those concepts into your theme. Um, but it feels so weird to be importing your byline for your blog from a function, right? Um, when that could just simply be a template part.

Cory (00:24:37):
So, let me back up and just explain why, because maybe us just saying like, oh, it's better isn't really helping our case here. So let me make the case, right? So with this idea of template tags, I understand it right? Core WordPress has this concept of template tags because that's like where it started, right? Like, call this function. It understands the context that it's in. If it's in the loop, right? And it'll know to grab the title <laugh>, right? And it'll output the title. It'll throw in some tags or whatever. And you can customize that right? With function arguments, which we all know it's a little awkward, right? So keep that in mind. Um, and then of course underscores, which a lot of us kind of started with that and have spun off our own things based on, you know, what we prefer, right? And that's kind of at least where I started with a different theme that this, you know, WP scaffold theme that we have is not directly, you know, from underscores, but all of these like starter themes kind of are.

Phil (00:25:51):
Spiritual successor.

Cory (00:25:52):
Right? So, you know, that they have had for a long time the author byline stuff like you suggested, and I don't know what else is in there. There's a bunch of stuff and it just kind of, you know, gives you a pattern for like, here's how you do these little bits of your template code is by calling a function and like echoing <laugh>, um, PHP bits, you know, or html, sorry, and fine I guess, right? Like that's a simple way of doing it. But we've all had to have, I mean, other people have had to have run into this issue where like, okay, now I need to, you know, I need to show the author differently in this.

Phil (00:26:33):
Yeah. I need to show the gravatar next to their name. I need to change the way categories are outputting in some way or something like that. And then you go and you look at this like template tags file, and then you go and find which function it is, and then you start hacking on it. Mm-hmm. <affirmative>, of course it's doing inline HTML with like then a PHP and it's like, uh, you know, you're in your escaping and like un-escaping all the time to try to get that like all kind of gelling correctly.

Cory (00:27:05):
It's a bad system. Yeah.

Phil (00:27:07):
It's really doesn't feel good to be working in there.

Cory (00:27:10):
And it should feel bad <laugh>.

Phil (00:27:11):
Yeah. Versus like a template tag or a template part, which is like, you know, inherently wants to be layout, like, it wants you to be putting your HTML, which is like your layout, and then you putting your PHP inside of there to like output the return and even more so you could like, you know, now that you could pass arguments into it, you can then pass it, you know, a post ID or something like that and then that can then populate the, the content inside of the template part.

Cory (00:27:37):
And, you know, so template parts are contextually aware, right? You can use all of the WordPress core template tags and all that sort of stuff within them, right? So you have that going for your arguments, like you said, to kind of change whatever you're outputting within there. Um, but also you have the system that's already in place for template parts for the actual file naming conventions where you can put in some dashes and, let's say something that we do a lot, right? Is having an excerpt template part, right. The way that we do, by the way, like kind of side note, I don't wanna get too off topic here, but the way that we do template parts just in general is a lot different than, you know, how Underscores does it and how what I see in a lot of other starter themes as well. I normally see `content.php` and `content-excerpt.php`, right. And `content-page.php`. Yep. But that's not how we handle it at all. Generally what we are doing is we're not just doing a content, um, generally we're doing it based on the concept of kind of like a component, right?

Phil (00:29:00):
It's componentized.

Cory (00:29:01):
Yeah. Yeah. So we've got an excerpt, right? Um, that's when we use a lot, right? And, you know, loops and archives, et cetera, right? So we've got that and we can then, if we have a special custom post type for that for that site, then we can have `excerpt-person.php`, <Laugh> for the team member, whatever like that, right?

Phil (00:29:23):
Service or resource. Yeah.

Cory (00:29:24):
Yeah. And we can already, you know, just based on the post type change, how, you know, have completely different, you know, um, completely different files for, for those outputs because they're really, we don't wanna be doing that, like, "oh, if it's, if it's a, you know, person custom post type, then I'll put this HTML and if it's not, then I'll put this" like all in one file. Cuz that's, that's a lot, that's a lot of mess, right? You can just, you can just quickly, you know, grok that idea based on the file name. Like, okay, here's the core one and then here's the one that's for this particular, you know, use, et cetera. So, um, so getting back to template tags, we've, we've taken this concept of componentized template parts to the extreme, essentially. Um, you know, your author template tag is no longer. Instead there's an author template part, and if you need to display the author differently in different places, then you can really easily make a, um, what's, what's the word I'm looking for? It's a variation, I guess. Sure. I dunno. Um, I don't know what the, what the word that they use for, you know, in the get template part function. Yeah. Right. You have your slug and then you've got something else, which is that variation aspect. Yeah.

Phil (00:30:45):
I dunno what that's called either.

Cory (00:30:45):
And you know, that system is very durable and it's, and it's, and it's been that way for a long time. If you give it, you know, this variation name and that variation name doesn't actually exist as a file, it will fall back—

Phil (00:31:01):
Fall back to the default. Yeah.

Cory (00:31:03):
—to your default one. It's a, it's a beautiful system and it works really well for us, right? Um, and it also means, and, and, and this isn't really something we do. Um, so it's, again, it's something I don't wanna dwell on, but, but child theming, a lot of times in your sort of template tags, you know, function file, uh, you might see a lot of that, you know, if the function doesn't exist and then define the function for how it outputs, you know, markup for an author or a date or whatever. Um, you don't, you don't have to, you don't have to do that nonsense.

Phil (00:31:39):
No. You can just overwrite it like you would any template file.

Cory (00:31:41):
Right. If you have a child theme, if you've got the template file in the same, um, the template part in the same, you know, folder structure, your child theme will use that template part instead of the one in the parent theme. Yeah. You don't have to deal with all this, "Oh, if the function exists" kind of nonsense. Right. It's better in every way.

Phil (00:32:04):
<laugh>. Yeah. Like, I mean, even just like to take that, not that we make child themes, but take that example and go a little bit further. Uh, you know, imagine trying to figure out like, okay, what's the function's name? I need to overwrite it now, so now I need to like write it in my own temp;ate file has the same structure and, you know. It's just kind of becomes a hairball pretty quickly.

Cory (00:32:24):
Absolutely. And part of, part of this system—last thing I'll say about this—part of our template part system is like I said, this modular componentized system. Now the, the files aren't colocated, but we have this, um, concept when creating template parts that the name of the template part defines the class name.

Phil (00:32:50):
Yep.

Cory (00:32:50):
And so whatever that is and whatever the, you know, we have them kind of grouped in different ways, right? We have a template parts folder and then we have, you know, a folder in that for content. And those would be anything that output, you know, post and page content like the excerpt and, and all that sort of stuff. Right? Um, we've got a folder for "site", which are template parts that are for, you know, header and footer stuff. Um, we've got a folder for like, um, gosh, I forget what we call it now cuz I wanted to change the name, like the "loop", I think <laugh>.

Phil (00:33:30):
Oh sure. Yeah. We called it like the entry, but like, is usually what it's called, but we wanna call it "feed" or "loop"

Cory (00:33:36):
Or, yeah. I've got the folder I initially named it "loop", and it's meant to be, it's meant to be the actual loop itself. It's meant to be the, the like archive, um, markup.

Phil (00:33:49):
Index, archive.

Cory (00:33:49):
It's meant to actually contain a loop within itself, which is why I called the folder "loop". And then later I realized like maybe I should have genericized that to "feed" templates, but whatever, you get the point.

Phil (00:34:04):
Yeah. It is what it is.

Cory (00:34:04):
Yeah. Um, but yeah, we have, so we have a concept of whatever that folder structure and the template parts core file name is, that's what the class name is. So if it's something in that site folder, like it's uh, `header.php` in, in template parts, `site/header.php`, then the class name for that is `.site-header`. And all of your styles are based on that. And if you have variations right, then the class name becomes in the BEM syntax style. I know that, I know that BEM is getting a little old and there's some kind of updated ideas about how to do class naming like CUBE CSS and that kind of thing. But the kind of the basics of that system still work really well for us. So you've got `.site-header` and then you might have, um, `--landing` or whatever maybe for like a landing page and the header's simplified or something, I don't know, whatever.

Cory (00:35:01):
Sure. Yeah. Um, and that's how you handle the, you know, Sass, you know, CSS class names, et cetera. And you know, and, and anything within that be, you know, uses the BEM syntax of the module aspect. So anything inside of that that you need to style is `.site-header__whatever`, you know, whatever sub-part of that is. And you, you keep everything at that level, boom. And it's beautiful. And if you start feeling like, oh, I need to like nest something really weird here and the class name becomes, you know, `.site-header__container__title`, whatever then you start to realize like, oh actually I'm starting to, the class namesare starting to get complicated because that thing, this, this part over here is actually a component unto itself. Yes. And then suddenly that's like, okay, well that's, that can become its own template part. You get it, we get it obviously cuz we're using it, but of course.

Phil (00:35:58):
<laugh>.

Cory (00:35:59):
Anyways, I'm just really excited about that and about, you know, how it just enables us to like really quickly and efficiently create these, um, things that are I think very maintainable in that sense as well. Um, we can do better, hopefully this year we will do better with figuring out if it's possible to co-locate styles and, and, you know, template parts and stuff or if there's other ways to better, you know, make that workflow a little bit better so it makes them feel a little bit more connected. But that's, that's what we're starting <laugh> where we're starting 2023 in terms of development. Uh, there's one more thing, which is that, uh, Blackbird is officially, Officially Remote <laugh>.

Phil (00:36:44):
Yeah. Yeah. We've really cemented our remote policy.

Cory (00:36:47):
Yeah. Um, yeah, at the end of last year we um, got rid of our physical office. We've got a mailbox or something somewhere, but, um, we're officially, officially completely remote. We were remote for all of 2022, but yeah. Yeah. Um, you know, still had the office and finally let go of that at the end of the year. So it doesn't feel like anything's really changed, but I think that that's really his sign of the times. <laugh>

Phil (00:37:15):
Definitely.

Cory (00:37:16):
Do I kind of, kind of miss the office, maybe, yea, a little, but <laugh>

Phil (00:37:21):
No. I, to be fair, I wasn't there for very long. So I had gotten hired during the, the middle of the pandemic so I think we, I had come in for a few weeks, maybe months, um, before between like summer and fall of, um, I can't even remember what year it was anymore, but we met up, I got trained on how we do things a little bit. Met everybody did that for a little while. But then I think, you know, as the, the numbers started rising, uh, we all made the decision to start working from home. Yeah. Uh, full-time. A hundred percent again. And, uh, we never looked back and now we never can. So

Cory (00:37:59):
We burned it down. No, we didn't burn it down.

Phil (00:38:00):
Yeah. No, we did not burn it down. But it is no longer ours. And um, yeah, we have, you know, we are now a full remote employees and, um, yeah.

Cory (00:38:11):
Yeah. I mean it's still the case that all of the employees are local, but, you know, it'd be interesting to see if that changes. Okay. So enough of that. It's time.

Phil (00:38:19):
No more looking back. Yeah. Let's look forward, Cory.

Cory (00:38:21):
There we go. <laugh>, it's time to look at what, what is in store for us for 2023.

Phil (00:38:27):
Not just 2023 people.

Cory (00:38:28):
Not just us, you know, specifically Blackbird. Cuz that was a lot of like, here's our, here's our life update <laugh>. Um, but now I think we should kind of take a moment to dream about a, a better, better future. Uh, what lies ahead <laugh>.Do you got any of those for me? <laugh>?

Phil (00:38:51):
I don't know. I think nothing comes out to mind. I would say like December and January were a very quiet year for WordPress news, um, which makes sense. You know, it's the holidays and, you know, start of a new year. Nothing was like really at my forefront. I definitely wasn't taking on too many personal projects. Uh, but something that did kind of jump out and just something that I used recently was, um, the Create Block Theme plugin. It was highlighted for a moment in the state of the word. Mm. Um, that just happened. And, um, yeah, it's a very interesting plugin. I have not used it extensively and I, but I have created a handful of full site editing themes, um, for other reasons. And I think this is a great way to kind of get started.

Phil (00:39:30):
Like, you install this plugin, you click a button to say, you know, create me a new theme. You give like a title and a slug and all that kind of stuff. You know, theme author and all that kind of, all those kind of goodies. It spins you up a theme, a blank theme that you can start working on and you can start adding your own templates and stuff like that.

Phil (00:39:49):
I have not gotten too crazy at it, but what I did use it for recently was that I was starting a hybrid theme outside of this plugin and I needed to, I wanted to use the new font API. So I installed this plugin onto a fresh WordPress install. I created a, you know, a blank theme really quickly. I used their tool. They have a, a font manager inside of this plugin. Um, and there's just a big dropdown where you can add, uh, system fonts or you can select Google fonts. I selected what Google fonts I wanted and what boldness is I wanted. And then I, uh, hit export and then it gave me the, the full site editor, the whole full site theme files that I wanted. I then extracted the assets folder and parts of the `theme.json` that it exported and put those into my hybrid theme.

Phil (00:40:36):
Um, so instead of me having to hunt and peck through the documentation of how the new fonts API worked, I was able to just kind of like use this plugin as kind of a stop-gap to help me figure out how the new, um, fonts API worked. And it was awesome. I didn't have to go to Google Fonts and download those fonts. It just did all that for me. And, um, it was fantastic and I'm glad I'm now using the newfound API

Cory (00:41:00):
Wait a minute, are you, are you telling me that you're cheating on our theme scaffold?

Phil (00:41:04):
Oh, I cheat in so many ways. Cory, you have no idea; if I can figure out a way to not code something, I will do it. So I mean that this, you know, how I am with my CPTs, I use generate, uh, you know, generate press or whatever it is WP generate to create all my, my custom post types cuz yeah. If I don't have to hand roll a giant function, I'm not gonna, so, um, yeah, if you could find little shortcuts, especially when you're the agency world, take them. Um, unless you're using some kind of page builder, then maybe rethink your decisions

Cory (00:41:40):
<laugh>. Uh, but back to the, back to the font thing for just a moment. Yeah. <laugh>, um, yeah, it was, it was a, that was a really interesting kind of moment and paradigm shift in just, not just like WordPress but web in general.

Phil (00:41:56):
Yeah, totally.

Cory (00:41:58):
And I, I don't know if we really talked about it last year, but there, there was a, there was a moment there when we kind of all collectively realized it seemed like, or somebody told us, I'm sure <laugh> that using fonts directly from Google fonts, just putting their, you know, their URL in there and externally loading those fonts—

Phil (00:42:20):
We're calling their CDN for their fonts.

Cory (00:42:22):
Right. It isn't, isn't actually as good as we thought from, you know, like a performance perspective that was CDNs in general are like on the brink of extinction, it feels like.

Phil (00:42:37):
<laugh>. Yeah. Kind of. Well, I would say that is accounts for a handful of things. You know, I think browsers have gotten smarter at caching like, and stuff like that. I think browsers have just gotten smarter in general and Yeah, it's an interesting, again, uh, we're talking about a lot of paradigm shifts in general, but yeah, what an interesting paradigm shift to like, you know, it used to be always offload your images to a CDN and offload your fonts to a CDN and now we're like, no, no, no. Uh, you want those to be localized and you want them coming from the same URL and, um,

Cory (00:43:03):
Well, I mean, it's not, it's not necessarily that you shouldn't, you know, put your images, your images on the CDN or utilize the CDN, in that regard, right? So like stuff coming from closer, you know, servers to the actual like end user is still a thing and that's not, that's definitely not what I meant by the, the brink of, you know, extension for CDNs. What I specifically mean is this idea that, you know, um, very popular back in the day with jQuery, right? Uh, I need to include jQuery on my site. Um, the "best way" to do that was to include a CDN URL to get that file, the jQuery file. Um, we did that right because the thinking there was that, um, if the user had already been on another site that used that same URL, the same version of, you know, jQuery that they'd already have it cashed. And so when they came to your site, since you are using the same URL as everyone else, because no one would be using your URL, so they wouldn't, they wouldn't have if you were serving it up yourself

Phil (00:44:24):
Yeah. They'd be using the jQuery CDN. Yeah.

Cory (00:44:27):
Right. But that's not the case. And I'm not sure if, honestly not sure if like that is just a change that happened to browsers due to security reasons and cross-site scripting kind of stuff, or if it's been a thing for longer than we all realize. But either way, um, if they come to your site and they see this, you know, browser sees the same URL, it's not gonna serve up the file from the cache from another website, that's a huge security risk right there, <laugh>, and I'm not sure how, we didn't all kind of realize that for so many years, you know, but downloading the Google font <laugh> to your, you know, um, the, the reason that I started this conversation is because it seemed awkward at first when, when the fonts, API for `theme.json` was initially released that like, oh, well it can't serve, can't serve Google fonts from Google Fonts.

Cory (00:45:21):
You have to download the font and it has to be served locally, um, for the `theme.json` stuff to work. And, and at first that seemed awkward, but then you learn about all these things and not only is it, you know, not gonna cash it across sites, but also there's just privacy issues with just loading a font from Google <laugh>, um, that like, I think Europe and stuff decided like, well this is not, this isn't you, you don't, you don't get all that data just because people wanna use a font or what, I dunno, whatever. Um, download, download your fonts,

Phil (00:46:00):
<laugh>

Cory (00:46:01):
<laugh>

Phil (00:46:01):
Download your fonts, and if you can find a shortcut to get them faster I'd recommend doing that. Yeah.

Cory (00:46:07):
For sure. Um, I, you know, I was trying to think about what I was kind of looking forward to trying to do this year, um, that I hadn't quite done before. I'm always trying to do something new with each project just to kind of get familiar with something else and have it in my toolbelt. And, and one of the things that I've thought about even last year, maybe even the year before, but never got around to trying, was using the, um, you know, using Gutenberg, using the Block API and all that sort of stuff for things outside of editing posts and stuff like that. So, um, you know, using Gutenberg, using the, you know, the word WordPress components package to, um, to have access to all of those, you know, field input fields and all those sort of, you know, UI components that have started to become, you know, the thing that I think we've all been waiting for <laugh> in terms of like back end admin kind of needing to have settings pages and stuff like that. Right. Um, I want to try to use the block API, the WordPress components to create settings pages and kind of use that paradigm of, of, of just how that kind of, the javascripty nature of it works to, uh, do that sort of stuff. I just need to find the right project that needs a custom settings page.

Phil (00:47:39):
Um, yeah. It's been a moment since I've needed a custom settings page, but I have a feeling maybe a plug-in project would probably be where that might come in.

Cory (00:47:48):
Yeah, for sure. Um, and you know, of course, like any time we have needed a custom settings page, ACF is there.

Phil (00:47:56):
It's so easy just to throw an ACF page together. Um, but yeah, I agree with you. I think, you know, the more I look at like, uh, some of, you know, you look at the right side bar of a block or when you're in the full site editing system, when you look at the global styles and you see all these great, um, components for, you know, radio buttons and select menus and all these crazy things that they're creating, um, for, um, the editor, uh, it would be great to utilize those outside of, um, a block.

Cory (00:48:24):
Right, right. Yeah. And, and they can be used. Um, just having, yeah, just having, we just haven't a chance to really mess with it yet. But speaking, speaking of all that kind of stuff, and you know, I, you know, you can kind of consider that these, these JavaScript libraries for components and stuff like that as a sort of new design system for, uh, WordPress, specifically for WordPress, you know, the WordPress admin experience. Um, and we're actually seeing some growing pains, I guess with that idea. It's funny to me because, um, you know, without, without ACF to just do a quick, you know, here's settings pages, here's fields, done. Right? Um, you know, without that, the, I think most of us have probably struggled with the fact that if you do need a custom settings page, you have to kind of, if you, if you don't want to do everything from scratch, you have to start digging into like WordPress core code to figure out how they're doing other admin pages. Yeah. You know, what, what, what class are they using to make this input field this particular length <laugh>, right? And the style, how are they doing the, you know, the little descriptions next to the thing. How do they, how do they do the layout where the labels on the left and the input's on the right and you just have to like,

Phil (00:49:52):
Yeah, you're kind of just inspecting their code and then kind of copying and adapting to your code. It's less documented and there's not a real straightforward API. And you find in some of the older panels, it kind of does seem like this was just built at the time and it wasn't really thought to be like a, um, a componentized system. It's just like, Hey, we just need a way for you to select what, um, <laugh> a certain setting in the settings page in this, you know, it's been living in the core for a decade now.

Cory (00:50:23):
I have struggled with this myself, with like custom plugins for, you know, custom functionality for, you know, big projects that, you know, I couldn't necessarily rely on ACF, it wasn't, it wasn't theme-based, it was, you know, plug-in based, and I don't like relying on ACF stuff in a, in a plug-in, so Of course. Yeah. Um, yeah, it's just a pain in the butt to like know how to, to structure a admin page so that it just, just, just looks right. <laugh>. But also the design of the admin and the default admin settings pages are showing their age in the Gutenberg times that we're in. Um, there's a recent, uh, update and a tweet, um, about the Yoast SEO plugin. Um, and some, and a lot of different takes, I guess I'll say on, on the subject.

Cory (00:51:22):
So yeah, if you're not aware, uh, and I'll, I'll drop a link to the tweet, but the, um, the yoast plugin has, they've developed their own design system, for lack of a better word, I guess, um, for their settings pages. It's a very strange tweet thread if you look, if you go look at it and kind of look at the discussion that's, that's happened under it. It's kind, it's a little bit surreal. And I'm not gonna like read through it right now, but I don't know, my, my reaction is, is very mixed because WordPress does have these input components, you know, available, but in some cases it seems like Yoast is—I haven't, I haven't dug in deeply cuz I'm honestly, I'm not interested in using their design system for anything. So there's that.

Cory (00:52:19):
Yeah. Um, but it's interesting to, to look at, you know, what these plugins are doing and at least they're doing it out in the open. So like you can go and see and you can even use their components. But I warn you for anybody who's that doesn't like the, the T word, it's um, it's all, it's all tailwind based. So keep that in mind. Um, and if you're not using Tailwind, well, let's just say I have a problem with plugins including Tailwind CSS because I have had that really mess up the back end of WordPress for things that are outside of that plugins purview. So I, I don't just have a problem with Tailwind in general. I have a very specific problem with plugins, um, including, I don't know if that's the case with yoast's plugin. I don't know if there's that style bleed.

Cory (00:53:09):
So, but <laugh> anyways. Um, enough with the, enough with the Tailwind. Um, yeah. So, so you know, they've got their own components that aren't in the WordPress core component library. They, they might be using components from it and then, then just kind of like tweaking the styles or injecting or, I don't know. Um, it's weird to me because WordPress has come up with a design system. It's very obvious like the Gutenberg approach, it's not just, it's not haphazard, right? It's, it's, it's very purposefully designed. We might not agree with all the decisions, right? But it's like, you can go, you know, you can go look at the Figma files, you know, they're all there. The whole, just the, the way that things are done, the toolbar and the et cetera, et cetera. Yeah. I don't know. I don't know what else to say about that. It's, it's a strange moment.

Phil (00:54:02):
Yeah. It's strange. I will refrain from having too many strong opinions. Cause I definitely do. Um, I don't know. I feel like we're not that far away from a complete dashboard overhaul.

Cory (00:54:19):
In core.

Phil (00:54:19):
Core. Right. Um, in core, you know, there have been some not like, very light proposals in the past year of what that could look like. And, um, I, for one, support those efforts. I know it's a big shift and a lot of plug-ins are gonna break, um, you know, by default because, you know, they're using PHP to kind of manipulate, um, the way the dashboard works currently. But I think in order for us to move forward, we're going to have to make some of those decisions.

Cory (00:54:47):
App-ify the backend.

Phil (00:54:49):
Yeah app-ify the backend for sure. Um, I also, just while we're on the topic of SEO plugins, I think there should be more default SEO options inside of core. Like, you know, SEO has been a thing for of the internet for the longest time. And it's this weird situation where we need to install some weird third party plugin.

Cory (00:55:09):
Right. There's a certain baseline that like you just need on every site. Now that could totally, could be, you know, standardized in core with these other SEO plugins, adding to that, but

Phil (00:55:22):
Yeah, I just don't think we need some plugin that installs a bunch of like, traffic lights everywhere on your website, just looking like gaudy and Awful. And have given you tons of notifications. And I also just don't think the admin area was the area of the app that looked like crap for you. So, yeah. I don't know. I think they could have put those design efforts somewhere else. Yeah.

Cory (00:55:49):
I get it though. Like, plugins are gonna, they're gonna have their own, well, some of them are gonna have their own brand. Um, something like Yoast is not no longer anyways, WordPress specific. Um, and they've had their own brand for a long time. Of course. They're focused on SEO, so of course that's gonna be a focus of the actual plugin itself, whatever, uh, the business itself <laugh>. But, um, you know, this isn't, this also isn't new. It's just the whole, like having a different experience in the back end then the WordPress user might expect, right? That, we've, we've seen that happen a long time. Um, but this is, this feels like the first big one that is doing it when there's a very obvious precedent being set for—

Phil (00:56:39):
Yeah.

Cory (00:56:40):
—what it could look like. I'm not saying that the Gutenberg design specifically gives you all right answers for like, you know, a settings page. I mean, it's—

Phil (00:56:48):
It's like, it seems like a fork in the road where like, we're at this point now where yes, Core is starting to give you the option: Hey, here's how we would prefer you to create settings, pages, and , um, you know, what fields you would like to use and, and b even we'd like for your help on building those cuz Yeah. Like, you know, we're a volunteer basis type of thing. Um, and yeah, and Yoast has decided, you know, they definitely drew a line in the sand like, "Nope, we're doing it our way."

Cory (00:57:15):
And only by the way, for the, like the settings page and like one other page, all the rest of the settings pages in Yoast right now at least are the, you know, the old gray background with, I mean, Yoast had still had already been like inserting these like kind of white boxes with like purple accents and stuff. Um, but yeah just, just a particular page they've completely revamped.

Phil (00:57:40):
My suggestion would be just to use The SEO Framework and move on with their lives.

Cory (00:57:45):
Yeah. That's a good plugin. Um, we have, we were talking about this a bit before, we, um, we've seen, we've seen these plugin admin experience overhauls with JavaScript, with like, for instance, the Ninja Forms 3.0.

Phil (00:58:04):
Yeah. We were big fans of Ninja Forms for a long time there. Um, you know, and when Ninja Forms 3.0 came out, you know, the way that you built your forms was this very drag and drop it, it's looks a lot like how blocks work now, where you have this panel and you, you know, you click what one you want and it then you can drag and drop it around if you have certain extensions installed, you can put them in columns and all this kind of crazy stuff. But this was long before, uh, you know, core had blocks or anything like that,

Cory (00:58:31):
This was 2016 when 3.0 came out so.

Phil (00:58:34):
Yeah, Ninja Forms had to like, come up with their own way of handling, you know, a block based design system for their, um, form builder. And it was kind of revolutionary for the time, in my opinion, you know, I had used Gravity Forms for years before this. I don't know where they're, what they're doing now. So I can't comment on how, where it's gone. And maybe it has, you know, maybe it does have one of those builders now, but at the time it did not have like, as robust of, uh, form Builder as Ninja Forms, and it felt huge. It kind of felt like, oh wow, this is the direction, uh, WordPress could go and it is. But, um, but yeah, that was like, again, amplifying the back end of WordPress in a lot of ways.

Cory (00:59:12):
I'm gonna add a, you know, a link, uh, legacy <laugh> link back to a WP Tavern post about when Ninja Forms 3.0 was released. But, you know, it's interesting the detail in there. Uh, they, you know, talk about the technologies that they use to build it and all that sort of stuff, and it's very much based on like what WordPress, um, was providing in core, the, the, um, the Backbone library and, um, Underscore the, not the theme, you know, theme scaffold, but the, the JavaScript library, you know, that kind of stuff. Right. But Backbone in particular. Um, and it's, it's just interesting to see how, I mean, that API is still in WordPress. You can still use Backbone for stuff. I mean, thankfully for the Ninja Forms plugin, <laugh> <laugh> of course. But, you know, we've completely moved into the React world with, with Gutenberg. Um, they do different things, right. React is very UI heavy, you can actually use Backbone for this sort of, you know, API based stuff. I don't know. I haven't seen a lot of it in Core anyways, where they're actually using Backbone in Gutenberg, maybe they are, I don't know.

Phil (01:00:33):
Yeah.

Cory (01:00:35):
But yeah, definitely they were on the bleeding edge, they were ahead of their time and now, now they're kind of stuck with the consequences of being ahead of the Times <laugh>. Yeah. I dunno, I am curious if there's any potential plans—

Phil (01:00:56):
I don't wanna speak out of place. I don't know them as people or developers or anything that, I'd be curious to have one of them on and see if what the plans, if there are any plans on modernizing Ninja Forms.

Phil (01:01:06):
Yeah. Glutenburgenned, um, the Ninja Formenned <laugh>. Um, but yeah, uh, I would like to see that. Um, but yeah, I'd be curious to, to hear what the, uh, I think we're having a lot of growing pains with a lot of plug-ins right now of like, you know, what does a block version of a lot of plugins look like?

Cory (01:01:25):
Yeah, for sure.

Phil (01:01:26):
For sure. Yeah.

Cory (01:01:28):
I think, we'll, we're gonna have some interesting conversations about that with some guests. I'm not gonna give anything away today, but I think, um, yeah, I think those would be some interesting conversations for sure. Um, I only have one other kind of, um, item that I wanted to bring up. Um, it's been the elephant in the room for months now. <laugh>, um, uh, kind of, uh, kind of undercurrent to the tail end of our season last year, which is the whole Twitter thing, <laugh>, um, I mean, I'm still, I'm still looking at Twitter. I'm still making connections with WordPress people there and talking to them, but I am also, you know, on Mastodon, um, I've seen a lot of WordPress folks over on Mastodon. Heck, there's a, you know, there's a WordPress focused, um, Mastodon instance, uh, as well that a lot of people are on.

Cory (01:02:31):
They've got like lists of like, here's WordPress people in on Mastodon <laugh> that you can, um, go check out. I think it was WP Builds, um, has a mastodon instance. Um, but you know, there, there's like, there's a great, there's a diaspora happening, um, in, I mean, not just WordPress folks, but just that particular flavor of social media is no longer monopolized or it doesn't feel like it, um, monopolized by Twitter. And I'm just kind of wondering in general, for our listeners, if it makes sense to make an in the loop mastodon account. And the reason I ask this, and, and you know, the reason I haven't just done it right, is because I, I almost feel like there's an unwritten, um, you know, unspoken kind of thing where, you know, Mastodon is just, is not for brands <laugh> now how, I mean, I have seen like, you know, I've seen like Raspberry Pi on Mastodon, right? But the, that's, that's, you know, that's a specific that makes sense, <laugh>, right? Um,

Phil (01:03:47):
Yeah. Who doesn't want a company that takes military contracts

Cory (01:03:51):
Well <laugh>. I dropped into a, a live podcast the other day, um, a WordPress podcast because one of the hosts had posted a link on Mastodon. It wasn't, it wasn't the, the podcast, you know, account. It wasn't a podcast account or brand account, like posting those links. It was just a person that I followed because they're in WordPress and I have a podcast. Um, and that's how I got to it. So I'm just kind of putting out there, if anybody has feelings one way or another, I'll certainly be asking this on Twitter with our brand account, <laugh> @InTheLoop_WP.

Phil (01:04:36):
Where else would you like to see In The Loop? Where would you get your information about In The Loop? Uh, where, what feeds would you like to see us in?

Cory (01:04:44):
Yeah, for me, there was a very obvious like core kind of WordPress community on Twitter that I didn't really see on other social media sites, or maybe not in the same way, right? So now that, that's been kind of up in the air for a long time, and a lot of us don't agree with certain things, <laugh> about the whole situation. Um, just, um, just, um, looking for options and opinions. So if you have one, please feel free to let us know on Twitter <laugh>. Oh, uh, one last, one, last item for, for this, for this year and looking forward, I'm, I'm making a concerted effort this year. So we, we do have a new, um, redesigned site. Uh, the Blackbird Digital site is, you know, new. I mean, it has the same things on it essentially where the podcast is concerned.

Cory (01:05:54):
Um, and one of my goals for last year that did not come to fruition was actually having transcripts of each episode on the site. I wish I was coming to you today and telling you that there are transcripts now. Go, go look at them. However, I am, I'm making that a priority this year. If we don't have the backlog of, of transcripts for past, um, episodes, I'm, I'm going to make it, uh, a goal to launch this episode simultaneously with the transcript. So, um, hold me to that, this, this episode better have a transcript on the site when you are listening to it right now. Yeah. New Year's resolution, I guess <laugh>

Phil (01:06:45):
<laugh> either you heard the entire message and it's, uh, definitely on the site, or we had our editor whip up two versions of this podcast, and we're just going right into the outro right now.

Cory (01:06:56):
There we go. So that's it. That's it. I think this feels like an awkward ending.

Phil (01:07:02):
<laugh> It does. I think the, you know, we're shaking off the dust from all of the holidays, so Yeah. Onwards and upwards into 2023. Hopefully we'll have some amazing guests that we can announce really soon. Absolutely. And, um, and we'll, um, continue the WordPress conversation right here on in the loop

Cory (01:07:21):
<laugh>. You're gonna do the voice now?

Phil (01:07:25):
No, I can't do the voice.

Cory (01:07:27):
<laugh>. All right, fair enough. See you folks, uh, next time.

Cory (01:07:31):
That's all for this episode. Join us next time for our first interview of 2023. Check the episode description for links to things we mentioned in the show. And don't forget to send your questions, thoughts, and fan mail to [email protected]. You can also find us on the web at https://blackbird.digital/podcast and on Twitter as @InTheLoop_WP. If you're interested in having a WordPress website custom-built, or you want to join a team that does that, head over to our site @blackbird.digital and drop us a line. Thanks for listening to In The Loop. See you next time.

28: Writing Block Themes with Justin Tadlock

Clips Links (02:07) Justin on Ryan Welcher’s Thursday Twitch Streams: https://www.youtube.com/watch?v=3d6tqqlBVvo (04:50) Archived version of themehybrid.com: https://web.archive.org/web/20191101014914/https://themehybrid.com/ (05:23) Justin’s writing for the WP Tavern: https://wptavern.com/author/justintadlock

View Episode

Let's talk.