I heard a rumour that you hate Wordpress

Published 24th August 2020 at 12:38am UTC 

I started writing this post the week before last when I was having...a bit of a weird weekend. Wasn't sure if I should post it as it's mostly just me complaining and swearing.

But it's been a while since I've posted anything so I figure, why not?

So I've been a little busy lately, mostly with my 9-5. I don't want to jinx it but...I actually like working at FutureLearn. My colleagues are pretty cool, the engineering department strikes me as really thoughtful. The work doesn't make me want to die inside.

Outside of work, I've also been trying to help a local organisation with their website. I knew I wouldn't be able to maintain it forever and that finding a new Rails developer if I wasn't available could be expensive. So...


And you know it's been quite embarrassing actually. I'm a developer - an "expert", if you will (lol!). WordPress is supposed to market itself as the tool of choice for non-technical beginners - this should have been straightforward, right? Cut to four months later and changes to the design spec have meant that it's basically nowhere still.

Turns out I fucking hate WordPress.

I think I hate everything about it. I hate the hosting choices: you have shitty Bluehost who will charge, like, £47.28/year for hosting but will double their prices just to provide basic security, have a rubbish user interface and then seemingly go out of their way to make it difficult for you to close your account within the trial period. With the exception of Namecheap (who to be fair, charge half the price of Bluehost and have support staff who don't make me want to scream at them), every other host charges significantly more to host a given Wordpress site - something I'd perhaps be fine with if it were a personal app or something for work but less so when I know I'm building something quite small and for a group of people who basically have no money collectively.

I hate that every other plugin available tries to charge you 99€/year to do stuff that would have been free in a normal framework. And for really basic things sometimes like handling translated text. I know Polylang lets you do a lot for free but I find using that tool to handle translations spread out over different WordPress pages quite unruly when compared to using something like the config/locales/ directory of a Rails app. Just to ensure that the dropdown menu doesn't appear when the plugin is disabled, I have to add custom CSS like this:

.pll-parent-menu-item, a[href="#pll_switcher"] {
  display: none;

It's not hard to work out, I'd just rather the free version of the plugin were smart enough not to need this. Like, I get that maintainers need to make money but is this really worth 99€ a year?

I hate LAMPP. Or XAMPP. Or whatever people are calling it now. You know, there are some jokers who call it an "open source" tool even though the latest version was released a few days ago and I still can't find a version of the source code that was updated more recently than 2013 anywhere. I'm sure if I were a proper 1337 haxx0r, I could just reverse-engineer it and work out how to fix the broken xampp panel command. Sadly I'm not so I guess Apache Friends will just have to fix it themselves.

For my fellow mortals out there, I'd suggest using the sudo ./manager-linux-x64.run command to launch the XAMPP panel instead.

I hate that I don't know what permissions are needed for my dev environment to work with plugins. After hours of going back and forth, I think this is it....

cd /opt/lampp/apps/
sudo chown $USER:$USER -R ./wordpress/htdocs/wp-*
sudo chmod 755 $(find ./wordpress -type d)
sudo chmod 644 $(find ./wordpress -type f)
sudo chmod 777 -R ./wordpress/htdocs/wp-content
sudo chmod 644 ./wordpress/htdocs/wp-config.php
sudo chmod 777 -R ./wordpress/tmp

...but I have absolutely no idea! In fact, I really hope that those permissions are just plain wrong because they look silly.

I hate that there are major security issues in WordPress that I'm expected to care about as a developer. It's fucking 2020 and your framework doesn't provide tools to protect against SQL-injections out of the box?

Above: Luther Hargreeves is really sick of WordPress

I hate how tacky the embedded PHP looks. To be fair, I don't think I fully get the rules of how they're supposed to work. Some of what I've seen so far does just look insane to me though. Like why you would allow <?php?> tags to stretch across multiple templates without closing? <?php Why would

anyone want this?>

I hate that it does all of this insane magic with the header.php template that makes it difficult to split up your templates in a way that isn't stupid (i.e., the Rails way). I spent four incredibly long days (two weekends) trying to understand why dismantling the wretched TwentyTwenty theme always removed the styling from the entire website. Turns out, it's a known problem in some themes and they just don't reference the stylesheets in the layout by default. I literally have no idea how that theme even functions the way it does. And it seems like the most reliable way to get custom themes based on it to play ball is to just leave header.php where it is, even when it contains parts of the page I wouldn't typically associate with the "header".

This will no doubt be a super fun thing to work with when I need to make the theme hide the real header on specific pages, as per the new design requirements.

Moving all of the footer into a single template was similarly annoying but at least doable:

Above: screenshot in which the footer-menu-widgets template is moved from the 404 template to footer.php

(Why would you not put everything that is the "footer" in footer.php? How does that even make sense?)

Of course this might have been simpler to do if I:

a) Wrote my theme completely from scratch, or,

b) Had just not tried to force WordPress to behave like a completely different framework

I sort of got locked into the theme as originally I had no intention of changing it much at all. The rest of the group seemed to like the demo site but really hated the homepage (long story!) so I had to try and modify that specifically.

As for the forcing it to behave like Ruby on Rails....I suppose I just couldn't help myself!

Above: Klaus Hargreeves being Klaus

Another issue I have with WordPress is that I genuinely don't trust anything that doesn't expect me to use version control. It looks like deploying via FTP is really common in PHP land but I always worry that other developers are trying to hide something when I see them do this (i.e., trying to hide what they know to be shitty and/or unsafe code). Obviously it's possible to commit stuff like WordPress themes to git (as seen in my earlier screenshot) but I really feel like I'm working against the framework whenever I do and I just don't get that feeling from other frameworks that I've worked with.

Irritatingly enough, I wasn't even supposed to build that website.

Ok, so I made a few proposals early on. But then no-one in the group got back to me on a lot of it and out of nowhere some retired guy in the group volunteered to do it before a consensus was reached. At first it was fine, even when he kept acting like he was the only programmer in the room and kept trying to push random-framework-that-no-one-has-heard-of #19 when building the site (real talk: does anyone in the industry actually use TYPO3 right now? And if so, how cheap/easy is it to find other devs willing to use it?).

Got really annoying when he started telling my what was and what wasn't in the design spec....especially considering how at the time the closest thing we had to a design spec were a set of proposals that I'd bloody written!

(And yes, the requested features were in the "design spec".)

He also kept telling me he'd cropped the whitespace in the website logo when he clearly hadn't and implied that users whom we wanted to provide translations for would be too illiterate for us to bother with. Of course now it's like I'm supposed to be ok with his remark because the guy in question once designed a translated font face a million years ago...never mind the fact that, to my knowledge he doesn't seem to have acknowledged that what he said might have been inappropriate (especially given the the fact that I regularly see members of our target audience posting online in the language we wanted provide translations for).

He seemed really anti- giving me admin access to the site for some reason...like I'm some sort of dilettante and not someone who, unlike him, is still paid money to code five days a week.

So I kicked him out of the project and got stuck working on it because the thought of him taking it hostage gave me intense déjà vu. The group's been thinking of changing their name (among other things) however so at this rate we might not even need a website anymore.