EP448 – Nothing is certain but CPTs & taxes

March 17, 2023

In this episode of WPwatercooler, hosts Jason Tucker, Sé Reed, and Jason Cosper dive into the world of Custom Post Types and taxonomies. They discuss the popular CPTUI plugin and explore the new Custom Post Types management feature recently added to Advanced Custom Fields Pro (ACF Pro). We may even get into user taxonomies!

Whether you’re a seasoned WordPress developer or just getting started, this episode is a must-participate for anyone interested in creating custom post types in WordPress!


Episode Transcription

Jason Tucker:
[0:09] This is episode number 448 of WPwatercooler. That’s right.

Sé Reed:
[0:17] That’s a funny title that I came up with.

Jason Tucker:
[0:20] I’m Jason Tucker. You can find me over on jasontucker.blog.

Sé Reed:
[0:24] All my links are right. For those of you who don’t know, I’m Sé Reid.
I am on Rastagon and really pretty much everything else at Sereedmedia.
And y’all know me. I’m Sé Reed. I’m a big fan of the show.

Jason Cosper:
[0:35] Y’all know who it is. It’s your boy, Jason. Cosper, AKA Fat Mullenwig back at it again on the world’s most influential WordPress podcast, that podcast over wherever it is that you find.

Jason Tucker:
[0:46] And you can come hang out with us over on discord.
Go over to WPwatercooler.com slash until, you know, we all move to something else. There’s always, there’s always something else. What else are we going to move?

Sé Reed:
[1:02] We don’t want to be owned by the man or the people, whoever they are.

Jason Cosper:
[1:07] No, no.

Sé Reed:
[1:08] We want to be free to spread our wings and fly. Yep.
For those of you listening on the podcast, I did just imitate a bird.
You’re missing out right now.

Jason Tucker:
[1:20] I want you to see the video.

Sé Reed:
[1:20] You’re missing out. Well, I gotta say.

Jason Cosper:
[1:23] I went and I stayed and went and yeah, and there was a bird in your face. It was, yeah.

Sé Reed:
[1:30] You know, here’s the deal. So everyone’s talking about chat GPT, but I thought we should talk about CPT. We should ask CPT.

Jason Tucker:
[1:40] You know me.

Sé Reed:
[1:42] You know it. You know what I’m saying? Here’s, there’s some inspiration for today’s topic.
There, there are multi, there are multitude of inspirations, even though this sounds like something random, right? Like people like custom post types, like, hello, it’s been done.

Jason Tucker:
[2:00] It’s like, hello. It’s like nothing’s changed either.

Sé Reed:
[2:09] Well, there’s some news from ACF coming up, um, that you won’t have to have two plugins for your physically.
It’s saying, sorry, CPT UI, we don’t need you anymore. Sorry.
That’s so mean. But it’s true.
If you use ACF, which, you know, part of this title, right?
If you’re building websites for an entity that is anything other than a blog, right?
For the most part, it involves CPT.
Are we like, right? Like custom post types? Is there a site that you build these days that isn’t, doesn’t have custom post types? Like, I don’t even know what that would be. Like, I think I sent out custom post types for like.

Jason Tucker:
[2:55] Literally everything. So I’ve seen people, I’ve seen people take custom post types and bill or build a website that should have used custom post types.
But what they did instead is they made a page and then they made a child page and then they made pages next to that child page so that they essentially look like it was an archive.
But then you come to find out that like, you know, you want to go add a whole new one. Now you’re you’re having to like build everything out and put all the pieces together.
And you know, and then not using ACF, you’re now having to like, build everything from scratch or duplicate a page and then change all of the elements. It’s like, why would you do this to yourself?

Sé Reed:
[3:39] Like, yeah, I think it’s a very old way. I mean, it’s an old way.
Capital O L, I guess, right?
Doing that, you know, less, less plug and play. But there are a lot of ways to make custom post types. It’s not just CPT UI, the plugin.
There’s generate WP, which is a big fan favorite. And you know, I like very easy to just spin up all your different thingies that you need.
But the good news for those of us use ACF is that ACF is introducing custom post types and taxonomy.
So since you’re already using ACF, you can just use ACF for your custom post types also. And then all be together in one happy family.
However, however, there’s more.
Do you want to hear? Are you intrigued? Are you intrigued? Do you want to hear more? All right. So I have spent the last two weeks on one of those websites that was supposed to be like for a friend.
Well, she’s still a friend. Uh-oh, here we go.

Jason Tucker:
[4:42] That’s the wrong person.

Sé Reed:
[4:42] She’s still my friend.

Jason Tucker:
[4:44] Lay down in the chair. Get out my notebook. We’ll start writing.

Sé Reed:
[4:49] You’re like, oh, this is going to be real easy. It’s not a problem.
I’ll just transfer this over and I’ll help you out real quick.
So this client, friend client is a chamber of commerce for a small town in Northern California.
And the chamber plugin that they were using went the way of the Dodo bird and end of life itself.
Was it chamber master? I think it was actually chamber master.

Jason Tucker:
[5:18] It’s probably chamber master.

Sé Reed:
[5:20] Chamber master, which was by the way, just so poorly built. it had people and businesses as CPTs.
And then like, these things were linked. And I was like, what is trying to, like, detangle the data from like dead plugins is such just really hard sometimes.
Doesn’t matter how many all imports and all exports you have.
I’m just like exporting and importing data trying to get it to work.
But so here’s, here’s this thing. So I I opted to use, I have not used for a full site before, I opted to use paid membership pro. row. Y’all used it?

Jason Cosper:
[6:02] You’ve heard of it? A little bit. I mean, I’ve used it.
Just testing stuff out when I needed to, to come up with some sort of membership site.
Yeah, like plugin or whatever sort of site to like test.
Here’s what performance looks like on a membership site. I did pick paid memberships pro haven’t spent a ton of time with it.

Sé Reed:
[6:25] Haven’t done with it. Haven’t done much with it. Well, I I hadn’t either and I had not used it or really kind of delved into it other than, I think I used it one time like for a client, like out of the box, like five years ago or something.

[6:39] They also have a member directory add-on component and fun fact, not as no code as you would think, but that’s another topic that I wanna talk about a different time.

[6:52] But interestingly, they structure their members not as a CPT, but as users.
So they tap in, so it’s not like a separate thing.
Their members are their users just with, you know, member properties, I guess, right?
So it’s not like there’s a separate member list, like there’s not a separate member CPT.
So what I realized and discovered is that ACF does not make custom fields for users.
First of all, did you know that? Nope, fun fact, does not.
And maybe the new version does. I haven’t, I wanted to go find it, but turns out user taxonomy and user profiles in general are really severely under documented in WordPress.
WordPress. This is not something I’ve ever gone diving into before, but I had to…
So I couldn’t make custom fields, so then I was using user taxonomy.
So custom user taxonomy.
And I think Tucker, you said you had used user taxonomy or tried to use user taxonomy once upon a midnight dreary for the water cooler site.

Jason Tucker:
[8:13] It was it was when I was using I think it was like the events.
No, well, the events sign up things. And then I said what I was using and all of you gasped like, oh, my gosh, you’re using that horrible thing.
And I’m like, uh, yeah, I guess not.

Sé Reed:
[8:32] I buy it.

Jason Tucker:
[8:33] It does. But the, the, the thing is, is when you sign up, you sign up as a user, just like if you leave a comment on a website, you’re signing up as a user.
So I wanted to exploit that and be able to make it so that way, if any of those people have signed up for a particular episode, I could show all the people that were in it, I was using some goofy stuff, you know, because user taxonomy.

Sé Reed:
[8:57] Is just completely underutilized. I actually found one plugin that does create custom user taxonomy.
You can create custom user taxonomy on your own, no probs, obviously, but it has nothing inherent.
No archive pages, no category pages, And all of the taxonomy counts, for example, all linked to posts, not to users.
So it doesn’t, out of the box, actually tell you can’t like click on it and view your users in that taxonomy, which is a very basic posts and a very basic function.
So I realized that in trying to create this user taxonomy, which by the way, not complicated, okay? It was just a business category.
Like that. This is I was not doing anything. You’ve heard of business like right?
Like, yeah, this company is an accountant.

[10:02] Show me all the accountants like this is not a complicated thing.
I almost ripped out the entire thing and rebuilt it using my more typical facet WP ACF, like stack, I guess plug in stack because but I was trying to use something super simple and out of the box so they could, you know, not have to pay a bunch of money not you know, I’ll have it it right there.
Terrible idea. Not easier. I should have ripped it out.

[10:30] But this is not just me bitching about this website. I swear.
I really wanted to talk about the user taxonomy because I literally used an article by Justin Tadlock from 2011. Dang, longevity right there.

Jason Tucker:
[10:46] To 2011. Like it’s 2023, right?

Sé Reed:
[10:48] That’s what you’re saying. Okay. I’m like, well, as I was saying, I was like, Oh, that is 12 years.
Okay. And the setup structure for that was still relevant. Now there is like I was googling, you know, you google around. I also asked Chad GPT does not have good information for me.
But uh, yeah, googling around going, there’s got to be an older, a newer article.
Love you Justin Tadlock, but like there’s got to be something newer, right? No.

Jason Cosper:
[11:25] You would think.

Sé Reed:
[11:26] You would think. There are a couple out there that I found because I googled some, I just like went on, I was like, I will find you.
But yeah, User Taxonomy is super underdeveloped. There is not any sort of plugin that focuses on this or expands this.
Paid Membership Pro, which I just covered, is right now adding on new components for their directory that involves User Taxonomy and that sort of thing.
So in their latest release, they’ve got a couple of code recipes and I’m over here asking this form, like, can you update this? Can you fix this?
Go ahead and use my support questions as your documentation.
It’s fine. Yeah. But I was just really shocked.
We talk about all of the… There’s so much development going on in WordPress all the time. Everything moves so fast.
And then we have this basic thing like categorizing users that is completely not just underwhelming, but just like completely underdeveloped, just, just barely there. Yeah.

Jason Tucker:
[12:38] So I had that, I had a similar, I had a similar issue that you had where I wanted to have all of those authors listed under the, or users listed under the different episodes that they were on.
But I also wanted to have an author archive page that would have all of the users, you know, because that that’s that’s standard that kind of is built out that way.

Sé Reed:
[13:03] But then I want to use authors are not the same. No.

Jason Tucker:
[13:11] So I ended up using realize this stuff was yeah, I think I use post to post.

Sé Reed:
[13:18] Plugin doesn’t exist, which is no longer.

Jason Tucker:
[13:19] Yeah, it’s no longer Yeah. And then way back in the day I was using something that Rachel Cherry made that was a posts plugin that did, it made a post turn into a taxonomy.

Sé Reed:
[13:34] Oh, so you could like, well that’s cool. Cause then you can add your taxonomy.
I’ve actually done something like that where you can create a taxonomy that had like, so it’s easier for your client to create the taxonomy or it takes a taxonomy I want to say it’s like create the taxonomy or it takes a taxonomy list from the titles of the posts. Yeah.

Jason Tucker:
[13:52] I want to, I want to say it was something like, like I was looking to see if she had it listed anymore, but I think she like stepped away from that particular plug in.
So I don’t, I don’t see it listed anywhere on what she was using.
But that thing’s interesting. The problem with doing any of this sort of stuff is now you want to apply it to modern day tech. So you’re like, Oh, here, uh, Gutenberg, I need you to display this thing.
And it goes like, what the hell is this?

Sé Reed:
[14:23] I’ve never heard of you. Your taxonomy. What is that? What are you building? Yeah.

Jason Tucker:
[14:27] And then Cosper caught, you know, Cosper’s performance part of this goes like, wow, you just like, you know, I don’t know you, you, you, you connected all of these databases together.
And now they’re not our tables rather. And now these tables are not set up the correct way.

Sé Reed:
[14:44] And the query that I had to build in order for the drop down selector for the autonomy to, you know, show you the categories that the thing is in, again, basic technology I’m trying to use here.
It’s like a big asterisk is like if there’s there’s a lot of users this could really eat up performance.

Jason Tucker:
[15:04] All the left joins.

Sé Reed:
[15:05] What are we doing? I feel like this, I guess, this is why, and, I know you have something you wanna say, Cosper, but I’m kind of incredulous that something that we all use, CPTs, custom post types, custom taxonomies, all the time has seen relatively little development.
And the fact that ACF is now including the taxonomy and a CBT builder in its pro version, although I think it’s in its free version as well.
And then that’s big news.
I just feel like we’ve dropped the ball a little bit.
Like, the fact that this isn’t built in, even, like, it’s just, what’s happening here?

Jason Cosper:
[15:52] Sorry, go ahead. If we had a friend of the show, Scott Kingsley Clark on, we could probably press him on this with the fields API. That…

Sé Reed:
[16:03] Okay, but he and I are the same person, so we’re not actually allowed to be on the show at the same time, it’s just physically impossible.
You know, it’s like Batman and Clark Kent or something. No, that’s not right.
Some one of those people.

Jason Tucker:
[16:17] I was saying that man walks into a phone booth.

Sé Reed:
[16:20] He comes out tomato, right? Batman goes to a phone booth, comes out as Clark Kent, you know, it’s fine.

Jason Cosper:
[16:29] Yeah, but so one of the interesting things about this too, and you kind of hit on this, like the custom query you you have to make.
There are, and especially with performance, there are like no affordances for you make this big complex query.
And in in those cases, I see something like that, if I have to make some sort of convoluted query, I try to figure out like what sort of my SQL index I have to put on this query to try to make it perform faster.
But that’s one of those things where I don’t know how much experience either of you have with writing an index for like a big query, but…

Sé Reed:
[17:21] Well, me and chat GPT have been working on that.

Jason Cosper:
[17:26] How is that thing going?

Sé Reed:
[17:27] Me and my buddy are doing well. Like it’s been helping me with my SQL queries. My my SQL queries.
I love saying that like that. Um, were you done with that point?
Well, no, so I want you to finish your point before I interrupt.

Jason Cosper:
[17:43] I was, I was going to say, um, also like, well, so you’ve, you’ve been engaging, uh, chat GPT.
Are you, are you paying for the, the premium chat GPT so you can get access to, uh, GPT for now or whatever?

Sé Reed:
[18:00] Uh, I’ve had this account like for a long time, like since before it was like launched it when it was just the like little generator thing.
So no, it doesn’t me out. I’ve not had to.
But apparently, that’s the only way you get chat GPT for so I’m gonna pay, they’re gonna take my money because I love that thing. It is like not to get off topic.
But it is the best ADHD tool that has ever existed. That’s all there’s to it. End of story.
Yes, no, I am. I’m doing great with my chat GPT and my I love my Nova for code.
Courtney is making comments there. But I do want to say, you guys were talking about pods, the pods plugin.
So I actually tried the pods plugin with Paid Memberships Pro because there’s an add-on.
It’s like add-on central over there. There’s an add-on for paid memberships pro.

[18:58] To interface with pods. So I was like, great, this will be great.
I get to support Scott, I get to, you know, whatever.
No, didn’t work because same problem, user taxonomy, not a thing.
And the whole point that I was, the whole thing that I was trying to add was the user taxonomy.
So I could freaking just sort these people. So I mean, I did a lot of extra things, you know, I was like, should I make some business listings, whatever, but at the end of the day, I just had to, I just had to build the customizations and build, build the user taxonomy out including the archive pages, the, um, redoing the admin.
Like this was the, like, again, this was a pay, this was a site for a friend that was supposed to only take like 10 hours.
And I had literally more custom code on this site than I have for my client sites because my client sites, I use my stack.
I’ve got like all the stuff done, you know, like I’ve built it out before.
I know what I’m, you know, this was like, I’m over here, like demanding questions from their support support was like, you should maybe talk to a developer.
Thank you. Thank you for your help.

Jason Cosper:
[20:09] So you’re kind of pushing at the edges of what can be done right now.

Sé Reed:
[20:14] Yeah, but this is the problem. It should not be the edge.
This is not cutting edge stuff. And this is, um, you know, I’m not one to get down on site editor Gutenberg or blocks or any of the above because you know, they have their they’re great.
But the focus of the project, in terms of our was the word my optimism, myopi, myopi, where you can like my myopic, we are very myopic, we have gotten, you know, Gutenberg was like six years ago that we took this path.
And I’ve heard a lot of comments like, oh, we haven’t been doing innovation here or innovation here because everything, all the development efforts are really focused on the block editor.

[21:01] I never really minded that so much because I’m not trying, I don’t know.
I guess the stuff that I’m trying to do is, I don’t want to say it’s more basic because it’s still custom stuff, but it’s not as, I’m not usually pushing the envelope of the actual, I’m not usually building out admin pages that work properly because that’s just not what my clients need, right?
And there’s plugins for that. But I just was really shocked by just the fact that this is so underdeveloped.
And then Jason was telling us about ACF and was letting us know about the ACF, the new thing that ACF is doing.
It just struck me that this is like this huge deal for this giant plugin that we all use.
And like, oh, we have custom post types now and it’s like, I’m like, does it, you know, that’s how I feel about it. I’ll just like that. That’s me.

Jason Tucker:
[22:02] If you’re going to build out everything about it.

Sé Reed:
[22:04] Yeah.

Jason Tucker:
[22:05] I mean if you’re going to build out everything, why not build out everything under like one whole setup that knows about one another and they’re not having, this is, this goes back to that, the fields API. It’s like these things all need to know that they exist.
So you’re like, Hey, does this thing exist? Yes. Okay. Can I connect to this?
This? Yes, I can do this. This. Yes. And then it just kind of brings them all together.
But I think what, I think what kind of adds to this is the fact that it’s having ACF pro kind of do all those things is going to lead us to a place where block generation is going to be a lot easier because all these things know about one another all under the same team.

Sé Reed:
[22:45] And that’s just me saying this.

Jason Tucker:
[22:46] I haven’t, I haven’t investigated that yet. But I’m hoping that that’s add on.

Sé Reed:
[22:51] They have made themselves into. Like they were already such a useful kind of irreplaceable plugin, even if you pulled your stuff out and put it in your phone, you know, pulled your custom fields out and didn’t use ACF like once you built it out or something like they have really cornered that market for a lot of us, even though there’s pods and whatnot.
And so you know, I don’t want to like forget about that there are other alternatives, but now adding on CPT and.
Custom taxonomy. They’re really just kind of a juggernaut in terms of that next level of customization.
And this is owned, ACF is owned by WP Engine, which is a really interesting purchase because WP Engine is not, for example, going to sell that to Automatic or anything, right?
Like it might maybe back in the day prior to WP Engine, maybe. But it’s a really, I feel like this type of thing, if we weren’t, you know, trying to rebuild the entire site editing experience, this type of thing would be something that could go into core.
Remember we use, is it even still there? Like I haven’t looked in so long that you could make custom fields somewhere in the dashboard, remember?
Yeah. Is that a thing anymore? I literally have not looked. You could just build out custom fields in your settings.

Jason Cosper:
[24:12] No pressure, but Courtney is in the chat. I’m sure she’ll have it looked up in fact check before the unofficial unofficial producer, Courtney Robertson.

Sé Reed:
[24:25] She’s supposed to be in a hair appointment. Okay. So look, some of us are taking care of ourselves and those people are not on this show.

Jason Tucker:
[24:33] Or she’s really boring. Those hair people that are just like, what are these people talking about?

Sé Reed:
[24:39] She’s like, I just got to listen to this podcast.
You won’t mind, I promise. That’s what I always say when people ask me.
I was like, oh yeah, I’ve been doing this podcast for a long time.
They’re like, oh, what’s it about? I’ll listen. And I’m like, you know, I don’t know.

Jason Tucker:
[24:56] We’re not here bitching about celebrities or nothing.

Sé Reed:
[24:59] I mean, you could talk about custom post types if you want, but anyway, okay.
Not to get too distracted, although that is my, you know, calling card.
Anyway, this is my point, right? We all are using custom taxonomy.
We all are using custom post types. We’re not using post formats, right?

[25:26] Despite those of us amongst us who are advocates. And it seems to me that they should be a bigger.
A bigger focus, a bigger part of it, because they’re so necessary that, like I can’t imagine just having a website without them. Like even just a basic website.
I want people to, it’s like, oh, and I’ve gone into people’s websites and I’m like, oh, you know what? Just let me spin up a custom field.
Let me just spin up a custom post type for you real quick. Cause it’s just gonna make your life easier to have this separated out from this other thing.

[26:07] And that value, even just adding a, instead of having everything crammed into posts or crammed into pages, having your sidebar display that in a separate area, that alone has value.
So across the board, we’re all using this, clients are using this, people without it are using it.
So just this juggernaut of a plugin owned by a juggernaut of a hosting person and the focus that Core has on site editing, really losing track, whether right or wrong, but not focusing on these other development parts.
It just makes me wonder about, it just seems fractured. It seems fractured and not necessarily like it’s the best for the ecosystem.
Are you showing us stuff over there?

Jason Cosper:
[27:04] I was just going to add this. This is a slight diversion, just slight.
But does anybody else think it’s telling that on the ACF site that the post editor they’re showing is the classic editor?

Sé Reed:
[27:21] Well, this is really interesting actually, because I have seen entire websites built with ACF, where they really are just fields.
Like it’s not any sort of content editor, there’s no block editor, there’s not even just one tiny MCE, right? It’s just the client gets to fill in these fields and then it populates on the front end in the template and that’s it, like it’s locked.
And this has not changed.
And that’s actually kind of a problem on my end because the clients are now using on posts, the post, the block editor, even for Divi or Beaver Build, right?
Post block editor, you can merge them together. So then when they’re moving over into the page or to a custom post type.
Content editor like it’s shown on the screen. Now they’re back to the tiny MCE and now we’ve got this two two UIs happening.

Jason Tucker:
[28:17] And it’s worth if you get into give it into dealing with patterns, then you then you essentially have three different things that you know, another which is another WP Engine topic.

Sé Reed:
[28:29] WP Engine is like making moves. So I got to say making moves.

Jason Cosper:
[28:36] I will also, I took it off of the screen for folks listening, but also in that screenshot, they have, I’ll put it back up.
They have 15, 15 updates on the site that they’re using for the screenshot.

Sé Reed:
[28:53] Wait, scroll down. Are you serious right now?

Jason Cosper:
[28:56] No, look, look in the, I’ll have to maybe zoom in a little bit. Scroll.

Sé Reed:
[29:02] This is what we do here on this show. we show you screens.

Jason Cosper:
[29:05] Right. Like look right up across the, uh, the top of the screen, the menu bar there, uh, where it’s like ACF is the site name.
There’s 15 updates. It’s like, Hey, are you using a classic editor, but there’s 15 updates on your site.

Sé Reed:
[29:25] Please somebody over at WP engine fix this on the demo site that you’re using for screenshots.

Jason Tucker:
[29:32] They were in staging guys. It’s okay.

Jason Cosper:
[29:35] I have built ACF sites using Gutenberg.
I have updated my site before I took screenshots of things.
It’s at one point it was, yeah, yeah. Just, just, just a tiny, tiny bit more attention to detail.

Sé Reed:
[29:55] Or maybe just like crop out the border. Like you don’t really need it.
It’s fine. Like it’s true. This is like, By the way, did I ever tell you that it was 2014?
That’s what the site editor looks like. It’s not 2010. Oh yeah.
The theme that the site editor looks like is 2014 for all of you old heads like me.

Jason Tucker:
[30:11] This is like when you show somebody a screenshot of like the home screen on your phone and all the people notice that you have like 500 different red dots of all the, like I literally have one that has 416 things on it.
And then, you know, you have somebody who they haven’t checked their email in ages they have like 10,000 like little red little red dot thing.

Sé Reed:
[30:32] As you check your email does not mean that little red dot goes away. Okay.
And also, what everyone looks at for me when I take a screenshot is my power.
They’re like, how do you operate on 2%? I’m like, I don’t know.
I just like to live on the edge. You know?

Jason Tucker:
[30:47] Well, all right.

Sé Reed:
[30:48] Let’s say we call that a show, right? Mastodon us some thoughts, because I have thoughts and I would really like to hear them.
If other people have had these thoughts.
Share with me. Come into our Discord. Chat it up. Please do.

Jason Tucker:
[31:02] All right, here’s our outro.
Can you hear me?

Sé Reed:
[31:10] Nope.

Jason Tucker:
[31:16] You’re not. All right. Podcast, Google Podcasts, Stitcher, Spotify, YouTube, and go over to wpwatercooler.com/subscribe. I’ll tell you later.

Sé Reed:
[31:25] TIL did you ever heard of that before? I don’t know. Bye.

Show More Show Less

Likes, Bookmarks, and Reposts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.