WordPress Basics
It's been a super busy and strange month, so blogging has taken a bit of a back seat. On the personal side of things, we got a gym membership just over a month ago! That's been an exciting and new experience. I'm certain that bits of that journey will slowly start making their way onto the blog. We've also continued to cook a lot. It might be the new exertion at the gym, or maybe it's just because it's been so damn hot, but we've started trying to improve our diets and eat more healthy food. We've introduced one night a week where we eat some kind of fish or other seafood, and then another night where our meal focuses on a plant-based protein. It feels great.
I've been busy with coding, too. I've slowly been building out a Music portion of this site, where I've catalogued albums I've recorded on and shows I've played. The latter is pretty challenging. I discovered I played my first show with my first band (not counting my terrible high school ska band) ten years ago today. I've scoured the internet, from my Facebook memories to old promotional pages to my friends' archive to find all these shows. Ten years is a long time and I performed a whole lot. I've even tracked down pictures or videos from some of those shows, and I've included that on that show's page when possible. It's not a complete archive (and I'm not sure if it ever will be), but it's a good start.
I have also been learning Gatsby. I built my first test site out, just to see how the tech works. From building pages to using GraphQL for static queries and page queries, to generating pages out of Contentful, putting in pagination, deploying to Netlify, and using a Netlify form -- it's been awesome to work with. I plan on doing a blog post (or series of posts, since there's so much going on) about that soon.
And then lastly, I think it's time that I start learning WordPress. We have sites at work running on WordPress at work. It powers an incredible portion of the internet, and it's kind of a basic technology that every web developer should probably have at least an understanding of, if not the knowledge of how to build a custom WordPress site for a potential client. It's in that spirit that this post is being written. This is going to be a very basic intro to WordPress, but maybe down the road I'll be doing more PHP/custom WordPress work that will be good to blog about.
WordPress Basics
Though I've had some experience with WordPress sites over the years, I felt I needed a broad overview that took a dive into all of the out-of-the-box WordPress features to gain a holistic understanding of the platform. The resource I turned to is Scott Tolinski's WordPress Basics course over at Level Up Tutorials. It's a great intro that walks through installing WordPress (both on Mac and Windows) and building a basic WordPress site using themes, widgets, plugins, and more. I'll detail some of these things below, but I also highly encourage you to check out his video course as you can actually watch him make installations and see the results of his work.
What is WordPress?
At its core, WordPress is a platform designed for web bloggers, but with its vast array of plugins, its extensibility (if you have any knowledge of the PHP programming language), and huge community of WordPress developers across the globe, its use can be expanded to anything you could dream of -- ecommerce sites, design or photography portfolios, museum websites, pretty much anything.
Note: I'll be abbreviating "WordPress" as "WP" in places in this post from here on because I'm getting tired of typing "WordPress" over and over.
When you install WordPress, the installation sets up a database and gives you all of the PHP files you need to display the frontend of your site as well as the backend administrative dashboard. The frontend is what visitors to your site see. The backend is a Content Management System (CMS), where you can build pages, write and publish blog posts, manage tags, manage user roles, adjust the look and feel of the frontend, and customize features on your site. From here on out I'll be using "backend" and "dashboard" interchangeably.
Site Management and the Backend
Pages
Pages are high level content areas that display general information. Typically your website will have an "About" page that highlights the purpose of your website, as well as who is running it. Another traditional page on a site is a contact page, where your readers can get in touch with you via email or contact form, or find your social media accounts.
Pages can easily be created and managed in the Pages menu in the WP backend.
The Home Page (or Front Page) is a special kind of page in that it's generally the very first thing that visitors to your website will see. When you initially set up your WP website, it will typically give you some sort of generic "Welcome!" message and display your first blog post. However, this front page can be customized how you'd like, and care should be taken in doing so as this will be where your website makes an immediate impression on its visitors.
Posts
Posting is the primary thing WordPress is used for. Posts are different from Pages in that Pages will contain more evergreen content -- like an About page or a Contact page, whereas a Post is focused on the content you want to provide. For example, if your website is a food blog, a post might be a recipe or a review of a restaurant. Out of the box WordPress gives you a lot of power to make your posts shine. You can add headers, block quotes, paragraphs, images, videos, audio, gifs, etc. Posts can also be tagged -- for example: "coding" or "recipe". Tagging provides a different style of navigation and content grouping across your website. If a reader likes a particular vegetarian recipe that you have authored and posted, they might be interested in checking out other recipes that you have tagged "Vegetarian."
User Roles
You don't have to run your entire website yourself. In fact, depending on your level of interest in running a blog, you may not want to. Let's make up a hypothetical situation here. You want to run a cooking blog, but you have no interest in taking care of the maintenance required in keeping the site running. You also don't want to be the only person writing content. You'd like a friend of yours, who specializes in vegetarian cuisine, to be able to post their own recipes. You also make contact with someone who runs another cooking blog, and you each decide to contribute a recipe to each others' blogs (a great idea because it allows for cross-promotion for each of your websites), but you want to have to approve that person's content before it gets published, to make sure it matches the overall tone of your blog.
WordPress gives you a great deal of control over the users who work with your site:
- Administrators can manage updating the code base or the domain name of the site, and otherwise have pretty much full control over the website
- Editors can create, manage, and delete any posts written by anybody
- Authors can create, manage, and delete only posts that they have written
- Contributors can create and edit their own posts, but their posts will require approval from an Administrator before it's published
Controls for user roles can be found in the Users menu of the dashboard, and more information about these roles can be found here.
Customizations and the Frontend
WordPress is designed to be extremely customizable, the scope of which is entirely based on your code knowledge and willingness to tinker.
Themes
Your WordPress theme is the styling of your website -- background color, font colors, fonts and font sizes, general layout, interactions, everything that gives your site its look and feel. It's all there. When you first install WP, it comes with a couple of different themes already downloaded that you can switch between. There's also an option to explore and download other themes that the WP community has put together. If you're versed in code you can even develop your own theme, either by adjusting one you download or writing one from scratch. Outside of the WP community you can also buy themes that developers have built.
Themes can be installed and managed in the backend of the site by going to Appearance → Themes, and those selections will be seen on the frontend.
Widgets
Within a WordPress theme there are a number of default areas that are called widget areas. Typically these are in sidebars and footers, but that is different from theme to theme, and with a bit of code you can specifically create widget areas wherever you want them. Within these widget areas, you can define specific functionality. Maybe you want a small menu of social media links to be grouped together in your footer. That would be a widget. Or maybe you need a search bar in the header of your site. That's another example of a widget.
Widget selection and management can be taken care of in Appearance → Widgets.
Plugins
Lastly (at least for this post), there are plugins, which are add-ons to customize your site in powerful ways. There are thousands and thousands of plugins available to do pretty much everything you might need to do with your website. Do you need an events calendar? There's a plugin for that. Do you need a contact form on your Contact page? There's a plugin for that. Other plugins provide security features, others integrate your site into a Constant Contact account to easily develop an email marketing strategy. There's way more to plugins than I could ever fit into just one blog post, but essentially if there's something specific you need your site to do that isn't included in the basic WordPress install, there's almost certainly a plugin for it that you can easily install and set up.
Plugins can be explored, installed, and managed from the Plugins menu.
WordPress is super powerful and easy to use. With a little bit of customization you can be up and running with a beautiful, dynamic website in a matter of a couple of hours. I know this was all very basic and preliminary stuff, it hardly scratches the surface of all that can be done within WordPress, but it's a foundation upon which I plan on growing. There's a ton more customization possible within the WordPress platform that requires diving into the code, but having a clear understanding of WP foundational concepts is crucial before we start going in and configuring anything further. All in good time.