Skip to content


WPwatercooler is recorded Friday at 11:00 am Pacific

On this episode of WPwatercooler, we will be discussing how to do it wrong and all the things that you’re doing wrong in WordPress.

Panel: Jason Tucker, Sé Reed, Jason Cosper

Join us on an episode of WPwatercooler by visiting our Participant guidelines page.

WPwatercooler network is sponsored by ServerPress makers of DesktopServer. Be sure to check them out at

Jason Tucker 0:07
What’s up everyone? This is Jason Tucker and this is episode number 365 of WPwatercooler. is brought to you by ServerPress makers DesktopServer they make local WordPress development easy, check them out at

Jason Tucker, you can find me over at Jason Tucker on Twitter. My website is Jason Tucker, my blog

Steve Zehngut 0:26
and I’m Steve Zehngut. I’m the founder of Zeek Interactive, and I run the OC WordPress meetup.

Sé Reed 0:30
I was a teacher at David media on all the things.

Russell Aaron 0:36
My name is Russell Aaron, I do things with WordPress in Las Vegas.

Jason Cosper 0:40
It’s Jason Cosper, aka Fat Mullenweg

Jason Tucker 0:46
if you want to support us, you can go over to slash WP water cooler to help us out over there. We’d really appreciate it. If you like this content, hit subscribe. Click the little bell. And if you don’t have a little bell because you’re watching us on Facebook Book, there’s some like buttons and some share buttons. And if you’re part of like a local Facebook group, you should put it in there. We put in our local Facebook group and people watch it over there. So

Sé Reed 1:11
that was like a time. Yeah.

Jason Tucker 1:15
Se this is your topic, girl. Let’s make this happen.

Sé Reed 1:21
So a little bit about,

what about my week? My week. So this is say this is set, right? And I was supposed to rebuild it, but the COVID got in the way. And so instead, we are well, we’re still gonna rebuild it, but everyone’s getting impatient. It’s like an institution. This is a long story. No, it’s I’m gonna make it short. I swear. A point is, we’re in there and I was like, I was just going to scrap this site because it’s literal trash. And instead, I now have to do some accessibility band aids on this the fella. And so I went into the back end. Finally, which I just been ignoring. I knew from the front end, it was bad. But I didn’t know how bad until I went into the backend. And like, pretty much the whole site is stuck in the functions file. And it took me like, a little bit of time to like, even look there because I haven’t looked there in the functions file for stuff since like, I don’t know. 2008 like a real long time, I’ve been seeing a site do this a long time. And there’s hard coded content in there. And it’s all the pages. It’s not just one page. It’s not just a footer. It’s not just code. It’s like actual page content. And it’s so bad that I actually almost respect how bad it is. It’s like they like hand coded a PHP site within a WordPress site. You In one file, um, but also they have all the page templates happening and like referencing it, it is a literal Franken state. Franken site, wall, and I am kind of upset. Because not only do I have to now figure out what I mean, I can figure out how to like fix it, but like I have to, like, fix it. And there’s so many other problems with the site including, and this is, I don’t know if the functions file shovin is the PS there is a sense, or the fact that they have an h1 tag, one of many h1 tags in the footer

Jason Tucker 3:39
with the h1 tag is what makes the font bigger doesn’t it?

Sé Reed 3:44
Right, it’s not even the same size as the h1 tag, or the rest of the page is not even an h1 tag to match a style, just another h1 tag. And this site again was not built into things thousand eight. It was built like about four years ago. And I’m telling you, this is like this is this is what I saw, I see stuff that’s messed up. This one’s like extreme. This is also one of the ones that has like 12 revolution sliders in it. It actually is two redirection plug ins. And only one slider. But, you know, anyway, this is this is the nightmare that I’ve been working with. And I struggled with a lot of things with this. The hardest one is, how do you tell your client how messed up their site is, like they don’t know. I can’t explain to them what a functions file is. So like to them me saying, I can’t fix this because it’s so busted. I can’t easily fix this. It’s gonna take a while for me to fix this because it’s so programmed wrong, and they’re just like, that doesn’t make any sense. So we have some people coming at me going like, oh, our consultants said it should only take two to three hours and I’m like, Well, why don’t you tell your consultants To login to the back end, oh, they don’t know how to do that. Oh, weird. I bet they probably wouldn’t know what to do with the functions file either. A little bitter.

Jason Tucker 5:11
They’re gonna complain that you removed the PHP editor from the dashboard.

Sé Reed 5:21
I don’t even I don’t even I don’t even know where to start. Almost. It’s so bad. And then but like, that’s really one of the problems is how do you even explain to someone who doesn’t know what you’re talking about? How round it is? Like, it’s just really wrong. Just trust me. Like you trusted these other people who built this thing.

Jason Tucker 5:43
I guess to start, like, what you should not do. And we’ve talked about this probably. There’s probably it’s been probably many, many episodes that we’ve gone through this.

Sé Reed 5:51
Don’t ever go anyway, we mess up.

Jason Tucker 5:54
We don’t

edit, edit core WordPress files, like the stuff that’s in the root directory of WordPress. should never be touched, ever, ever, ever. Don’t touch any of that stuff, the only file,

Sé Reed 6:06
you know, they touch that I don’t think they’ve touched that php

Jason Tucker 6:09
file. Other than that everything else should not be touched. And you should never put anything in that config dot php file that’s going to make looking make anything look different, or actively different or anything like that. There’s some basic stuff to put in there. And nothing more.

Sé Reed 6:24
I don’t know that I’ve ever seen content in a conflict file

Jason Tucker 6:27
will make it happen.

Sé Reed 6:30
I don’t know that I’ve ever seen something that wrong like that. This is this is one of the wrongest

Jason Tucker 6:36
Yeah, I wanted to go all the way down and say yeah, I’m here and then I’ll work my way up from there. I mean,

Sé Reed 6:41
cuz that’s, I couldn’t last right? Like if you put stuff into that, like it would the first time you did an update, it’d be erased and you would you would have nothing like because it’s erasing like the actual files of the actual program. It’s not even like updating a theme or

Jason Tucker 6:56
something. I mean, there’s like those hash marks that are at the top that say like, no Thing below this don’t do something. But

Sé Reed 7:04
when the when the file the problem is when the file doesn’t tell you not to update anything in it. So maybe the code, maybe I should get on the, the WordPress track and be like, can we add some code to function file that says, hey, this isn’t actually where you should be putting content, you should maybe think about this just so it’s there, like a little warning sign, like an early warning.

Jason Tucker 7:28
Let’s go to the next level up. So if you have a theme, and the theme is a theme that probably gets updated regularly, like if you have like, you know, you’re going through when bought some special theme from someplace. And now you want to modify that theme. don’t edit the config, don’t edit the functions, that php file that’s in that theme. Because when you go to, you know, to update that theme, it’s going to override that functions that php file. WordPress is the thing built into it that lets you do too themes. And if you need to make a child theme, you essentially take whatever it is you want to change, make copies of it, put it in a different folder, and then save that. And now you can make whatever changes you want to that and it won’t affect the base parent theme.

Sé Reed 8:14
And this isn’t a child, this isn’t a child theme.

Jason Tucker 8:18
No, right? Well,

Sé Reed 8:20
now, maybe we’ll still have problems with you adding content to the functions file if you did use a child theme, but at least that would be some sort of like, failsafe for an overwrite. But that’s not what this is. This is the theme that you can’t update because it’s a customized theme. So you can’t update it. There’s no updating, you have to go in to update it. One of my friends I was talking about with this was like, is that just like job security? Do they just make it so that they’re the only ones who can touch it? Like, is that what they’re doing? Maybe or are they just really that inept?

Jason Cosper 8:56
I don’t know. Also, maybe The Child Theme thing I will say if you decide to do a topic, like if I saw that a state was running a child theme, I would think, Okay, I’m going to check there to see what stuff that they’ve done in functions. php, at least. At least I wouldn’t have to dig through and try to figure out what plug in what theme what, whatever this is coming from. Also, if you’re gonna make a child theme, don’t try to be clever. and name the child theme. Like some things to like, say your site is your themes. Hemingway, you know, don’t try to name it some other play author from the time like Fitzgerald, or something like that, because if somebody uploads a theme to the repository named Fitzgerald, you’re fucked. The second that’s getting updated. I’m sorry to drop the F bomb Jason. With the second that theme gets updated. Your child theme is going to get overwritten your child theme something like the actual name of your site? Like say child theme for name of site, right guarantee that no one will ever put something up in the WordPress repository child theme for my cat bog dot. limo?

Jason Tucker 10:21
Yep, yep. And that’s good because you’re at least you’re you’re teaching yourself how to use namespaces because at some point down the road, you’re gonna have to namespace your functions and a couple other things like that. So, yeah,

Sé Reed 10:35
I am, by the way, the h1 tag and the footer is in the functions file. Should point that out. That’s all fine. So like, it’s not even even. Like, it’s like it’s like, what was that Cosper was showing us we decided chat and he showed us a cake with three pies in it are three pies and three cakes of pumpkin cake. What do Balu thing I got your duck in but for pies and cakes.

Jason Cosper 11:03
Yes, it’s it’s a it’s 30 pies baked into three separate cakes and then stacked on top of each other. It is so much of a pie cake that it serves 40 people but go Cagle pump capital Hey pig.

Sé Reed 11:26
Yeah, this is what this is. This is the function file. This is the pumpable functions file of do like if you ate the funk, Bumble, you’d probably be in a lot of pain. Just like pump capital pump apple.

Jason Tucker 11:42
Where does where does the apple? Where do these issues come from? Like where Who? I used to blame it on Oprah. I used to break something bad would happen and it was a global phenomenon, the type of thing that would happen I would go Okay. Did Oprah do a book thing where she was Tell us something about this thing. Like, what’s the new thing? What’s or even the old thing? Like, what is it? That’s that’s telling people? Is it YouTube videos? Is it

Sé Reed 12:09
Where are they getting this bad information? Like, you know, there’s like, contact trace, we need to contact information.

Jason Tucker 12:19
Which I mean, I’ve done that. I mean, I’ve googled, like, you know, I grabbed some text snippet of code Yeah, in Google and go, Oh, this person asked this question someplace. Okay.

Sé Reed 12:33
Okay, wait, sorry, I enter your website, something costumer but I just want to say, you can actually do that a little bit for this theme, because some of the photos and stock photography they use, they didn’t rename the images, and it’s like, thankful. You can actually trace their stock photography, but it’s what were you gonna say? Cosper.

Jason Cosper 12:56
I mean, if you if you want to contract, trace it back There’s two places you can go. And that’s Stack Overflow, which is normally pretty good about this sort of thing. But there are a few kind of junior developer types who just want to like help the the newbie, get them out of their hair, give them an answer and get up voted, but also and I’m going to place the blame at the foot of WP beginner. If you go if you go and do a search on WP beginner for functions dot php, there are a ridiculous number of posts that all mentioned functions dot php and just taught toss this code snippet in your functions dot php file. The top results is something that started out as 25 to 25 extremely useful tips. Now they’ve got it Up to 32

Unknown Speaker 14:02

Jason Tucker 14:06
roll over here guys.

Jason Cosper 14:12
So so first published sometime in like 2009 2010. And now last updated just last year, just last year, they’re still suggesting that you throw stuff in a functions dot php file. And I mean a lot of the stuff is pretty, pretty normcore like stuff that you throw in that

Sé Reed 14:36
this is bad. This is so bad. This is what like the stack on stacks of what this thing is I’ve got this is literally suggesting you put a custom logo into your your site if you ever want to change that. You literally have to go back into here and change it. There is no way to actually change that you could I guess Could like not from the back, not from not the back end, right? Like, if someone ever wants to change that logo, they have to go in here into the back end into the functions file and change that line.

Jason Tucker 15:12
There’s plugins, like when it’s unbelievable to me, we’ll do the same exact thing that will at least give you some kind of interface so you can make the changes to in you know, yeah, there’s, there’s better ways to do this, if you wanted

Sé Reed 15:25
anything that’s in the functions file should really be referencing some something that can be edited from the admin, if it’s got any sort of actual content, like a an image or a logo or that text right there. Like, what if someone’s email changed? What is the developers email changed? I guess that’s that’s for a developer to like, write their stuff so they can go into the file. But that’s stuck in that theme, literally, forever now. And, you know, this isn’t even this is actually some of this is more benign. Then that one’s handy.

Jason Tucker 16:03
This one’s great. There’s, there’s nothing wrong with this,

Sé Reed 16:06
you can just do that in, you can just do that in the template file with like, smallest snippet, Li, you don’t need all of that code tossed in there. You know, even if you’re a developer trying to get an updated thing, like it’s like the simplest little line of code to get it to update to the current year, like it’s really easy. But this theme that I am detangling is not even. It’s not we’re not even talking about functions that should be plugins inside of the functions file. We are literally talking about page content. So we have any order at the newsletter signup box, that now so now there is constant contact, reference information inside the functions file. Yeah, it is. Rachelle posted

Jason Tucker 16:55
in the chat she says I think sometimes stuff gets bad when devs are Working without guidelines and under crazy deadlines, people get lazy and slapdash. Best Practices go out the window, which I don’t see.

Sé Reed 17:10
Yeah. But this is not what that is like this is I can imagine, yeah, like you throw one thing in there. Right? Like, you could throw a couple things in there, you’re like, I don’t want to make a plug in and it’s gonna be easier, or, you know, I’m gonna just change these things over here. But to actually like feed content in through the functions file, like that’s taking hard coding to like the next level. Yeah. Can you tell them upset about it?

Jason Tucker 17:41
Bad Things were, you know, that they that the, the developer, the previous developer went in wanting to do some overrides over, you know, say like a gravity form or they wanted to have CSS in there. And so they they wrote some code that would inject a CSS file in there and they do it inline. And it’s like, well, if you’re doing it in line, like, you could have done that someplace else, but they wanted to do it through this. And to top it off that functions file is going to be unless you specifically say, here’s the places on the website, I want this to show up on this particular page. Beside page ID, this pages slug, like any of those things were at least like that. But it doesn’t narrow the scope, it ends up that that gravity form shows up on every single page on the entire website. loading up this file over and over again. Or if it’s JavaScript, that’s like G. So do the whole page trying to find stuff. That sucks. It’s not the way you’re supposed to do it.

Jason Cosper 18:46
It’s awful for performance, especially if it’s JavaScript. If you’re including JavaScript on every page. It doesn’t need to be there on that is just your your you’re screwing himself over there.

Sé Reed 19:00
Your client, mostly your client, let’s be real. And you’re probably charging them a ton of money I have. So I think one of the in terms of contract tracing, a lot of this can be traced back to developers who don’t actually know how to use WordPress and no bother to actually learn how to use WordPress. And then like, this is just someone who’s PHP coding inside, like making a theme out of PHP code in the function file. And they’re like, I’m not gonna worry about the rest of these parts, although those are PHP too. So I don’t understand why you wouldn’t just do it in the right file. But yeah, they’re just like, everything is just an echo. Like you’re echoing content into the site. Like what? Like, you don’t have to do that. Like it’s really the whole point of WordPress is not doing that. So how is it that you build an entire site that is hard coded in the function file and then like, it’s like, you really don’t get the fundamental purpose of WordPress, like you were just completely like LinkedIn. That’s when you’re coming at it with like the developer mind of hard coding everything. And I used to hard code everything, but this is before the admin and plugins and everything was like, you know, so robust, like this is when you just had, you know, your, your basic stuff. But this is this is like, trying to make it do something in order to just because that’s not what you hate how what, mostly it’s probably because they’re outsourcing it to some other country. That’s really what it comes down to. And I think that’s really what it is. And that is like, the, like, maybe they’re not even aware of the code that they’re selling to their client, like and then, you know, they don’t know how to do it, right. So when marketers try to build sites for people, you know,

Jason Tucker 20:50
yeah, the skill set that the person has is PHP, and the right is a big blob of PHP, but that doesn’t necessarily mean they know how to use PHP in the way in which WordPress is doing it, like WordPress has its own specific way that you need to approach this. And if you’re not approaching it that way, then you’re essentially writing on top of WordPress, which isn’t going to help any,

Sé Reed 21:13
you’re not going to make no it’s like so useless.

Jason Tucker 21:15

Sé Reed 21:17
That’s why use a frickin Squarespace site. To do that just go with Squarespace and

Jason Tucker 21:23
you’re not using transients, the way that it needs to be used. You’re not using any of the caching stuff that needs to be used a certain way. Like there’s a reason why people do what they do. And it’s because the caching works better if you do it the right way. And if you’re breaking cash every time you do something that’s not gonna help any

Sé Reed 21:41
I can’t figure out what the right what the reasoning here is, besides that, that that’s just all they knew how to do. Mm hmm. Like, where’s

Jason Cosper 21:52
the go on say,

Sé Reed 21:53
Oh, I mean, they didn’t even change out the the theme picture that they were using. Like, if you would like the beam picture of like the little custom thumbnails of beam didn’t even do that. That’s cool. Yeah, totally.

Jason Cosper 22:11
Yeah. And someone who works in web performance, I’ll say that there are a lot of things that people do or don’t do, just because they don’t know any better. And they’ll pick a plug in, or they’ll pick a theme or they’ll pick, you know, this thing to throw in their functions file. But then they don’t realize that that works when you’re getting 20 customers to your site, or you’re getting, you know, 100 visitors a day or something like that. But the second it comes down to you actually need to scale this application. There are plugins that will work for 80% of people out there, but that other 20% who actually need the scale. I mean, It’s just not tenable for them.

Sé Reed 23:03
It’s a pretty big website. It’s fairly fairly populated. Fairly fairly highly trafficked. It’s painful, painful to me. Yeah, I have one other fun thing I want to tell you about the site. Are you ready? Yeah. Yeah, I was trying to override some colors. I was like, Okay, this part of the band aid, right. So there’s nothing in the theme customizer, of course, there’s no CSS in there. So I’m like, Great, okay, well, maybe I can override this. So like trying to override it, you know, gonna have to use the important tag, which is a great code. But if you’re trying to bandaid something, it’s what you have to do, right? How do you important code in the customizer? That has already been important to in the CSS file?

Jason Cosper 23:51
Like it’s double important, right?

Sé Reed 23:52
This isn’t as as 3d. Really important, please choose this one. Instead, like what is even happening, like, I can’t now I literally like can’t override it. I can’t just like, I was like, Okay, well, I can just update these colors so that their contrast is accessible. I can like tweak it easy, right? Not easy. How I’m like so you’re overriding something in your own CSS file. Because you didn’t want to do you didn’t figure out how this theme worked, or you didn’t know what your own code was, like you’re overriding something within your own file.

Jason Tucker 24:28
And I can’t override it for I don’t even understand, like, the how that works. We obviously you just need to write some jQuery that’s going to find all the importance and remove them.

Sé Reed 24:42
Like what does that even look like? What is this even gonna do? I love when shooting for minimal viable product? Yeah, yes. Yep.

Jason Tucker 24:50
And then yeah, yeah, exactly. And then Yep. I totally agree. You know, it’s like, rebuild it later when they you know, want to make improvements.

Sé Reed 25:00
Or this client has to pay me to rebuild this site later.

Jason Cosper 25:06
Yep. and easy way to clients for for more money for basically like okay, yeah, I’ll get the abp out. And now after the MVP is out, let’s wait a year and then you start having scaling problems and guess what? Guess who can come back and fix it? I can come back and fix that.

Sé Reed 25:25
I’m gonna change something on the site like, Oh, wait, this isn’t this phone number is wrong. I’m sorry, I have to go into the code to change the phone number now. Like, I have to hire a developer. I know what I

Jason Cosper 25:38
can improve cuz I’m the one who made it crap to begin with.

Sé Reed 25:43
Yeah, I mean, basically, it’s job security.

Jason Tucker 25:46
Yeah, obviously. He’s gonna be way better at this than then past me is so yeah, it’ll be good.

Sé Reed 25:52
I mean, it’s so tangled they’re actually not wrong. That’s actually not an incorrect thing because I’m like, literally having to charge our To figure out what is done wrong, like this is, this is why I didn’t want to do this band aid in the first place. I’m like, I don’t want to charge you to sit here and try to figure out how bad this code is. Like, what is that? That seems messed up to me.

Jason Cosper 26:15
It doesn’t make them wrong. To borrow from The Big Lebowski. It just makes them an asshole.

Sé Reed 26:24
Yeah, I mean, it works. Right. So what is doing it wrong? even mean? Like, if it works? It doesn’t. It’s not like usable. But like, you know, if you go to the domain, there’s a site there. I Oh, yeah. Like, right. So this is why WordPress gets a bad rap like this, because these companies do this. And then this is also why developers and people complain about this ish, because they’re like, Oh, this is so complicated or whatever. This is why users are like, I can’t make my WordPress site work. It’s because it’s built wrong. You know, it’s like if you like, if you have Anything that is built incorrectly it’s not going to work right? And you can’t judge it based off of that, like, Ah, I’m like, and then these people charge thousands 10s of thousands of dollars for this and build themselves as experts. This person this company based in Newport Beach, it builds themselves as an SEO expert, and has built themselves as an SEO expert and web web development expert. They put an h1 tag in a footer they read they didn’t even rename their image files these are like the most basic SEO concepts that you can even imagine and they are run out and I am

Jason Cosper 27:33
google google has been redoing their whole SEO thing with with a Bert update that’s been coming they’re doing it all AI now. So each one in the footer that’s fine, screw it. Why not? Cuz cuz nothing means anything anymore because we’re all just leaving it up to the AI to tell us what what SEO is good and bad.

Sé Reed 27:54
I don’t know. Google has been adamant about the h1 tag for I don’t know like a decade. Like, but you can’t even sarcasm that people are gonna be like, Oh, it’s not a big deal. No, it’s a huge deal like the h1 tag is the only tag that has ever mattered for years. Like how do you not internalize that? Sorry, I know. I know. I apologize, man. Go like dude.

I would like to say take a breath. This is why I usually read like this on Twitter, but this was like too much to tweet. I couldn’t even like figure out how to tweet about this. To get it out of my system. I was like, Can I just hijack this entire episode to Bitch please because I am.

Jason Cosper 28:39
Coming special a special series from WP water coolers. Hey, friends.

Sé Reed 28:44
It’s a rant. This is this episode hashtag. Hashtag how to piss me off. charge people a lot of money for a broken product and then tried to pass yourself off as an expert. They go out to piss me off. I’m really pretty not easily pissed off. But that’s how you

Jason Tucker 29:04
outing somebody in Newport Beach that does SEO. But if you were to do a Google search for SEO people, it’s all them. Everyone’s

Sé Reed 29:17
gonna say their site’s not gonna come up because they don’t know how to do SEO.

Jason Tucker 29:20
Oh, good. They do tell us off of it. So they did

Sé Reed 29:25
not say the name of the company. I would like to just point that out because I could, I could do it on Twitter also, and I’m not and that’s either nice of me, or bad business. I’m not sure if it’s like good or bad. Or if we should click this isn’t a name and shame situation, but I’m no company, or the name of the site. Just ranting anonymously, no.

Jason Cosper 29:50
But you did point out that they are an SEO expert in Newport Beach. So get to googling everybody and let’s figure it out. together.

Jason Tucker 30:02
It’s stuff Hey,

Sé Reed 30:02
if you’re right, you won’t find it. I’m sure you will find it. But it’s a larger company. But you know, anyway,

Jason Tucker 30:09
it’s been 30 minutes of complaining about this. And I really appreciate the two of you hanging out and talking about this stuff. Here’s our quick outro. If you want to help ourselves, go to slash WP water cooler. And we’d really appreciate that. By the way, Jason Cosper, who’s on the show, backs us. So if Jason Cosper is doing this, you should be doing this too. And I’d love to be able to like change this. So help us out. Hit subscribe, hit the little bell, we’d really appreciate it. And if you don’t like looking at so you just want to listen to us. You can do that too. We’re available as a podcast. You can go download us wherever the amazing podcasts. Thank you very much. And also if you are watching us on YouTube, you can click on any of these buttons that are here on the left and we would love to have you check out some of the other content. I’ve told them Bye

Episode Info

1 Comment

  1. Check it out –
    EP365 – How to Do It Wrong…

    On June 26, 2020 at 10:42 am

Leave a Comment

Please enter an e-mail address

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