How many WordPress users install a brand new theme for their blog and never feel the need to tweak it in some way? Not many, I’d wager. While there are many great themes out there, there’s almost always something that’s not quite right for your blog. Perhaps the blog title is too big, or something in the sidebar doesn’t look quite the way you want it to.
And so it’s off into the theme files you go—fumbling around with functions.php, header.php, and style.css, until you get it the exactly the way you want your blog to look. I should know, I’ve never met a theme I didn’t want to tweak in, oh so many ways. (That doesn’t make me a person, does it?)
Anyway, there’s usually no real harm in tweaking a few theme files now and again, until you find out that there is a new version of the theme, with even more bells and whistles that you are just dying to try out.
Fine. Just a quick download and… uh oh… you just overwrote all that painstaking work you did to get the previous version looking just right. Even if you did remember to back everything up the first time, there’s still a good chance that you’ve forgotten where you put all the little modifications and tweaks you made. I know of what I speak!
So, is there a better way? Of course there is, otherwise what would be the point of this article? For many of the theme tweaks you want to make, you can use a plugin instead of attacking the theme files.
“A plugin?” I hear you gasp. “But aren’t they all hundreds of lines of code written by those geeky programmers?” Well, yes they are, for the most part, but there’s no reason why a plugin can’t contain just a few lines of code to do something really useful. In fact, I’m about to show you a plugin you can use with any theme that’s only six lines long (excluding all those comments that clutter up the place).
Consider how many times you want to add some more CSS styles to your theme’s main stylesheet (style.css) or maybe tweak the values that are already in there. Unless you are extremely conscientious about comments, you will soon forget which values you added or changed. It would be much better if you could consolidate all your changes in another CSS file (e.g. my-style.css) that you know will never be overwritten. You can certainly do this by modifying the header template of your theme and including a <styles> tag, but even that modification should not be necessary. You can use a plugin instead.
And here’s the code:
add_action('wp_head', 'my_add_headers'); function my_add_headers() { if (file_exists(get_stylesheet_directory().'/my-style.css')) { echo '<link rel="stylesheet"href="'.get_stylesheet_directory_uri() .'/my-style.css" type="text/css" />'; } }
That’s all there is to it. The function my_add_headers() checks to see if there is a my-style.css file in the current theme’s folder, and if there is one, adds a link to it into the HTML header section of your blog page. So the code works fine whether or not you decide to create your own stylesheet file.
The magic to make this happen is in the first line. The add_action() function call “hooks into” WordPress just after it has generated all the HTML headers your blog needs for displaying a page. (WordPress has dozens of these “action” and “filter” hooks that can be used to inject your own code and HTML into a blog page.)
The one we are using here is the wp_head action which, as the name suggests, is invoked just before the </head> end tag is added to the HTML going to the browser. This is an excellent place to hook in your own stylesheet file without having to change any existing theme files at all.
The great thing is that this will work for any theme you use. Anytime you switch to a different theme, all you have to do is create another my-style.css file in that theme’s directory (or copy an old one over) and you’re done. No more messing about with theme files.
Now all that’s left to do now is to bundle this code up into a plugin, so that WordPress will recognize it properly. That’s pretty easy too. Just add the following comment lines to the top of the file:
/* Plugin Name: My Tweaks Plugin URI: none Description: Customize the theme without modifying any template files Version: 1.0 Author: Your name here Author URI: Your home page URL here */
All you really need here is the Plugin Name: line, but the rest of the information will show up on the Manage Plugins page, so it’s useful to put something in there so you remember what it is when you look at it in several months’ time.
Finally, because this is PHP code, you need to add the <?php and ?> tags around the whole thing, so the complete file looks like this:
<?php /* Plugin Name: My Theme Tweaks Plugin URI: none Description: Customize the theme without modifying any template files Version: 1.0 Author: Your name here Author URI: Your home page URL here */ add_action('wp_head', 'my_add_headers'); function my_add_headers() { if (file_exists(get_stylesheet_directory().'/my-style.css')) { echo '<link rel="stylesheet"href="'.get_stylesheet_directory_uri() .'/my-style.css" type="text/css" />'; } } ?>
Create an new file called something like my-tweaks.php and place it in a directory with a name like my-tweaks (imaginative, or what?). Then add the file and directory into a zip file, and you’re ready to install it. Go to Plugins » Add New in your blog’s administration pages and upload the zip file to your blog by clicking the Install Now button.
Your plugin will install in a few seconds, and at the next screen just click the Activate Plugin link to finish the process. You will be taken to the main plugin page where you will see your new plugin taking pride of place amongst all the other plugins you installed.
If you’re worried about the process of making your own zip file, here is one I prepared earlier:
Simply download this to your computer and install it using the instructions above. If you want, you can edit the information in the plugin comment by clicking the Edit link next to your plugin in the list of installed plugins once it is running on your blog. (Be careful not to change anything outside the comment lines unless you know what you’re doing.)
Now you can start adding all those new CSS styles into your my-style.css file and they will immediately be picked up by your blog. Remember, because your stylesheet file is added after the main style.css file in the page header, you can also override the default theme CSS values with your own. (You may have to use the !important tag for to override them successfully in some cases, but you should only use that when you really have to.)
Stay tuned for some more interesting things you can do with your new tweaks plugin.
I simply wanted to type a brief remark to express gratitude to you for all of the fantastic steps you are showing at this website. My extended internet lookup has finally been paid with beneficial concept to exchange with my neighbours. I ‘d assert that many of us visitors actually are undoubtedly endowed to be in a magnificent site with many marvellous professionals with helpful advice. I feel pretty happy to have come across your webpages and look forward to really more excellent moments reading here. Thank you once again for all the details.
Wow, incredible weblog layout! How lengthy have you been blogging for? you made blogging glance easy.
My greatest weakness in losing weight is sugar! It is a daily battle for me!
Great Article!!!
Wow, incredible weblog layout! How lengthy have you been blogging for? you made blogging glance easy. The total glance of your web site is excellent, as well as the content!
After study a couple of of the weblog posts in your website now, and I really like your way of blogging. I bookmarked it to my bookmark website checklist and might be checking back soon. Pls try my website online as properly and let me know what you think.
excellent publish, very informative. I wonder why the other experts of this sector don’t notice this. You must continue your writing. I am sure, you’ve a great readers’ base already!
You’re my breathing in, I have few websites in addition to at times be used up by brand name. “Tis the best tender element of really like, oneself in order to reduce. ” through Ruben Sheffield.
Hi, Neat post. There is a problem together with your site in web explorer, could test this… IE nonetheless is the marketplace leader and a huge section of folks will leave out your magnificent writing due to this problem.
I was suggested this blog through my cousin. I am not positive whether this submit is written by means of him as nobody else recognize such special about my problem. You’re amazing! Thank you!
I was just searching for this information for a while. After six hours of continuous Googleing, at last I got it in your web site. I wonder what’s the lack of Google strategy that don’t rank this kind of informative websites in top of the list. Generally the top websites are full of garbage.
Youre so cool! I dont suppose Ive read anything like this before. So good to seek out any person with some unique thoughts on this subject. realy thank you for beginning this up. this website is something that is needed on the internet, someone with a bit originality. helpful job for bringing something new to the web!
I’ve learn several just right stuff here. Definitely value bookmarking for revisiting. I wonder how a lot effort you place to create this sort of great informative website.
naturally like your web site but you have to test the spelling on quite a few of your posts. Several of them are rife with spelling issues and I to find it very bothersome to tell the truth on the other hand I’ll definitely come back again.
excellent points altogether, you just received a emblem new reader. What could you recommend in regards to your post that you simply made some days in the past? Any certain?
Youre so cool! I dont suppose Ive read anything like this before. So nice to seek out somebody with some authentic ideas on this subject. realy thanks for beginning this up. this website is one thing that is needed on the web, someone with slightly originality. helpful job for bringing something new to the web!
There is clearly a bunch to realize about this. I think you made some good points in features also.
This website online is mostly a walk-via for all of the information you wished about this and didn’t know who to ask. Glimpse here, and also you’ll positively discover it.
That’s really thinking at an imirssepve level
Wonderful paintings! This is the type of info that are supposed to be shared around the web. Disgrace on the seek engines for no longer positioning this post higher! Come on over and seek advice from my site . Thank you =)
I found your weblog site on google and verify a couple of of your early posts. Continue to keep up the superb operate. I just additional up your RSS feed to my MSN Information Reader. Seeking forward to reading extra from you afterward!…
Well I definitely liked reading it. This subject provided by you is very helpful for accurate planning.
I think other web site proprietors should take this web site as an model, very clean and magnificent user friendly style and design, as well as the content. You’re an expert in this topic!