A theme for WordPress is sort of like the outfit & accessories you’re wearing. The body underneath is the same, but it can radically change the way you look. To continue this analogy (simile?), you might want to get your clothing altered to fit you better, which is to say, you’d like to edit your theme.
When a theme is made and released, it is working fine. But there are constant changes – php updates, security patches, new guidelines. So you have to update your theme files. The user downloads the updated file and they are reinstalled over top of the old ones.
But here is where the gnashing of teeth can start, if you have not been careful! If you have edited your theme (say, you like having the background red in your footer, instead of blue), all of your changes will be wiped out with the update. So you must either make a child theme (more on this in a minute) or install a custom css plugin.
Option #1: The Custom CSS Plugin
Custom CSS plugins should work with whatever them you have currently activated. And if the change you are making is not specific to one theme (ie, you’ll ALWAYS want your text aligned right) it would be great to say it once and have it stand for any theme you use. Per The Theme Foundry: “Any custom CSS added with a plugin will endure from one theme to the next, so you never have to update the CSS when you switch to a new theme.” I like Simple Custom CSS – it’s so easy! And more than 200,000 people agree with me (it’s been downloaded a lot). Also a good CSS editor is included in Jetpack, developed by the folks at Automattic. So you know it’s good. TBH, I am not as conversant with Jetpack as I oughtta be, so that should be an upcoming post.
Option #2: The Child Theme
This is generally the best plan. There’s a few more steps involved than in just using a plugin, but in some ways it’s a stronger solution. It is specific to that theme, which is generally what you want anyway; you find a theme you like and then tweak it to make it perfect for you. Then, any future updates to the theme can be safely downloaded and installed, because your child theme sort of comes behind your parent theme (the main theme) and adds your preferences and changes to it. And you are not depending on yet another plugin.
I am constantly learning, and my understanding is that any CSS plugin SHOULD work seamlessly with any theme…but my experience is that child themes are more reliable. I can’t always explain why things don’t work (see above, “I’m always learning”) but my recommendation is for a child theme over a plugin, unless it is just a few small changes to the CSS. And many themes even include a spot in the customizer bar for your own custom CSS.
Making a child theme is relatively simple, once you have done it a few times. Wordpress.org has some great tutorials on making a child theme. And there’s a plugin…for making child themes. How meta is that?!?!?
UPDATE: Option #2.5: The Child Theme generator plugin
Full disclosure, I tried for a couple of hours…and apparently I am an idiot. I cannot successfully make a new child theme using the enqueing step. I have a sad. 🙁 Today I had to rely on a plugin. But then I started thinking, and why not? You can use the plugin, deactivate it and delete it. Easy-peasy. Today I used Child Theme Configurator, but was in the past also pleased with the One-Click Child Theme plugin (bonus: cute picture of sleepy kids).
Just my $.02. What do you think?