What is WordPress? (really)
Introduction
There are so many feelings and opinions flying around, that even if you don’t know anything about web design or programming – you’ve probably heard of WordPress.
We’ll try and clear things up a bit.
HTML is super great
It’s so cool. It’s what the internet is made of: web documents. CSS is great too – but it doesn’t play as large of a part in this story.
HTML is great. But – at some point, you start to think –
Wow. I have a lot of pages now. Whenever I add a link to my header, I have to do that on 23 pages.
Writing the HTML all by hand is fun – until a certain point. It’s not because we’re lazy, it’s because we want to be efficient. If you can just create 1 menu – and use it in many places – then you have more time to think about the bigger ideas – instead of just typing so much.
That’s when something like PHP comes in handy.
PHP is great too
Sure, you could write that server-side stuff with Perl or Java, – but for many reasons they didn’t fit this use-case.
With PHP, you can partial things out into components and stitch them together on the server. PHP is a server-side scripting language. You can debate the details, but it’s a hell of a templating system. It’s hard to talk about WP if you don’t quite understand PHP yet. That’s why we teach PHP and build out a mini routing system in the course at PE.
And then you want to “do stuff” with forms…
and you need to do some stuff on the server… You can use all sorts of languages to do things on the server. You could “do stuff” with Perl or Java – but then this other language ‘thing’ appeared called PHP. It had a weird story… and it’s kinda a Frankenstein’s monster that’s really a templating language that also is a programming language? So – basically it’s a system for writing HTML on the server – and it can do ‘stuff’ based on user interaction and present updated HTML documents to show the changes. People liked it. They didn’t have to compile it like Java – and well, everyone started using it.
At the very least
PHP can help you stitch together .php files – and parse them and spit out a full .html file. That’s really cool for just keeping things modular. A clear example is when you start realizing that you are changing the menu links on your site in 10 places instead of one. You can break that header and that footer into .php files (I can’t really write code here… or I’d show you) – but just imagine that you can combine little files and it’s really modular. Working with components makes life more fun.
So, PHP can get you a lot. You can make forms and use query strings and cookies to switch out templates and sort things and do all types of dynamic stuff. But then you’re also responsible for building out a whole administration panel and basically a front-end for the backend that is 100x more complicated than your visitor-facing front-end.
Web 2.0
The web was just about sharing and reading documents – until it wasn’t. People wanted to let users upload text and images and dynamically add their content to sites – just like this post! So, here are some words… and they will get saved to a database with a location and all the info needed to recall this post. Then when you go to the page – the URL hits the server and finds the PHP page + parses it + sees that it’s about this content + goes and gets the content from the server/database – and then creates and serves up an HTML page! And user login/authentication… and all the stuff you are used to.
But database queries are hard!
I don’t like to write them. Tags and categories and bears, oh my! Yuck! Do I really need to build out a whole administration panel (the front-end for the ‘back-end’) – and the database and the functions to retrieve stuff from the database?… Why do we have to roll our own blogging system – when it’s so common? I just want to write stuff and make it look cool and get internet famous!
WordPress.org – the open-source blogging platform
It is born. It’s a framework for building blogs. Mostly just the one ‘post’ resource – but also taxonomy, the category, and ‘tags’ and stuff… It’s like a newspaper (press) for your words!
But it wasn’t just a PHP framework – it was also becoming an ecosystem of ‘themes’ and ‘plugins’. Now, with no programming skills, you could set up a WordPress system – and choose a theme – and add some custom functionality via an array of premade functionalities called “plugins.” You could choose from widgets and customize a blog. You could monetize it too. You’d have to host the code and set up a server with Apache and MySQL and PHP (LAMP) (MAMP) / but even that could all be set in place by your hosting provider. This is how all the terrible hosting companies came into play. (stay away from GoDaddy!)
WordPress.com – the version hosted by the mothership
The company that made WP (automatic) needed to make some money, right?! And they knew that people wanted to set up blogs – but didn’t want to deal with the hosting. There were tons of companies like Tumblr and myspace and live journal and bloggr – and soo many. This was the WP version. You pay monthly and you can do all that stuff above.
(( For the rest of this article – when I talk about WordPress/WP, I’m referring to the self-hosted wordpress.org stuff. (not wordpress.com ) but this is another reason for the confusion ))
Cha cha cha cha changes
People wanted to push WP to be more and more. Over the years things were added. Then more things. PHP was the same. Because of this – PHP and WordPress are (sorry) pretty ugly code now! that’s because you can’t just “fix it” – because 75% of websites use PHP and 30%+ of websites are built with WordPress… (at some point it was closer to 60% before Squarespace and the static site generators) – so – yeah! They have to be backward compatible.
A full-on Content Management System
Add in the changes and tack on Advanced Custom Fields (plugin) – and you’ve got a really serious CMS. It’s not just “posts” anymore – and you can build out super impressive admin panels. And it’s FREE?!?
So – that’s what it is.
A lot of people say WordPress is ‘bad’ / or “we used WordPress at work and didn’t like it” / or clients say – no – “we don’t want a WordPress site”
? It’s because they don’t know what they are talking about. They had a bad experience. It’s ok. The client shouldn’t really be choosing the tools anyway / and maybe they got a bad ‘theme’ or had unreasonable expectations. It’s all about teaching the client about the system – and customizing it to their needs. There used to be Joomla and drupal too – which were really similar.
What does it mean to be a “WordPress developer?”
Yeah… it’s confusing. Is it a person who uses the platform – but doesn’t code? Is it a person who uses the platform but writes some custom CSS? Is it someone who helps clients pimp out their wordpress.com site? Is it someone who customizes a WP theme and configures plugins? Is it a theme author? a plugin author? Builds out custom themes for clients? Is a PHP expert? Words at Automatic? Owns a WP consultancy? Who knows!!!?!?!?
Freelancing is hard
When we start out – things go wrong… we take on too much stuff – over-promise / over-deliver / and then freak out – and yeah… we have a breakdown / the client gets screwed… things go wrong — and we all end up blaming WordPress. If this wasn’t you – it was likely the person before you. (side note – if the client isn’t willing to pay 1200+ then the site probably shouldn’t get made) / a lot of people have a powerful optimism when they start and they try and make a complex lawyer site with a premade theme for $500 and months later realize that the theme can’t do what they want… and that they don’t have the know-how to change it… and yeah… now it’s months overdue… and you’re never going to get paid for all that time.
What should we use instead?
I’ve spent almost my whole career trying to get away from WP and trying to learn the fanciest ‘coolest’ frameworks – and well… let me tell you what: I’m back here – using WordPress. Try writing your own Laravel CMS – or deal with React for a few years… and you’ll see. WordPress ticks the boxes for MOST projects. We built Perpetual Education (http://perpetual-edu.net) with it / and here I am – teaching it to students with great success. You can even skip the PHP – and just use it as a CMS and populate your Vue app with it.
WordPress is a PHP framework and a Content management system
You can learn just a little PHP syntax and get going. It’s a great example of server-side rendering – and CRUD. It’s very unlikely that you’ll go an entire career without building something with it – so, just try and see it for what it really is. The best way to learn is to build a custom theme. (the paid themes are mostly trash – so, that’s why people get turned off) it’s a great way to build a portfolio. https://developer.wordpress.org/themes/getting-started/
Fun fact: http://timenoplace.com – was @sheriffderek’s first WordPress website from probably 2011 – and it’s still up and running! Pretty cool. It has ‘artists’ ‘releases’ ‘videos’ and ‘posts’ – and they are all connected through relationships. You can learn A LOT with that project in a short time. We highly recommend you build a project like this instead of spinning up a bunch of toy React apps. Then you can use the wp-json to feed a JavaScript framework version if you want later.