ThemeForest has a pretty bad rap in the WordPress world. It's incredibly popular for anyone who doesn't know anything about HTML & CSS because of the cheap prices and huge selection. There is of course a catch – the cheap prices reflect the quality of some of these themes. While the screenshots look nice the code infrastructure that you pay for is very poorly built. If you have any aspirations to use one of these themes in anyway other than the author intended you'll likely run into a whole bunch of issues. I recently modified a ThemeForest theme (which I'm not going to name) for a friend and here are just some of the issues I ran into.
CSS Loaded Too Late
Because this theme has two different styles – dark & light – the css is loaded in such a way that it's loaded after that child theme's style.css file. That means that you either have to write overly specific css selectors (which is a bad practice), use !important
statements all over the place (also a bad practice), or know how to load your own styles even later than the parent theme's CSS (with PHP programming). With the audience ThemeForest has good luck with that.
CSS Use !important Statements
You'd be surprised how often this theme author uses the !important
statement in his CSS. Here's what Smashing Magazine says's about the !important statement:
!important declarations should not be used unless they are absolutely necessary after all other avenues have been exhausted.
And this theme uses them 94 times in a single CSS file! Now any other styles have to use the important statement. This is a terrible practice and one a lot of CSS newbies will have problems with.
Raster Files Everywhere
Another big issue is that every asset is being created with raster (non-scalable) images. That means that if you want to change the look of the Facebook icon you have to load up photoshop, edit the file, export the new image, and override the existing images. This is a huge pain.
But even for the users that have Photoshop why not use icon fonts!? Icon fonts allow you to change the color, the size, the hover effect, or anything really without any extra programs. You can change the color of an icon font just as easily as you change the color of a paragraph.
PSDs Stored in the Theme
Speaking of PSDs (or any production files) why would you store them in the theme? That's an excellent way to waste a couple megabytes of storage in your web hosting. ThemeForest even gives you an assets folder (which isn't in the theme) for these files. This author was just plain lazy.
No Filters
One of the best parts about WordPress is that you can add filters all over the place to make the output dynamic. Different developers can tap into these filters to change the output in an upgrade friendly way. Amazing huh?
If you do want to change the output for the social media icons you'll have to override the entire header.php
file which is not upgrade safe.
Garbage HTML
And just for funsies it looks like they like to throw in extra HTML into your markup! Just in case a search engine or robot goes through your html they'll find extra stuff (like phone numbers) that you didn't put there.
The Real Issue with Theme Forest
The real issue with theme forest isn't that they always have crappy work it's that there's no incentive to create quality work. I'm sure there are authors who put out really high quality themes but unfortunately there really isn't much of an incentive to do so. You could make more money by spending that extra time making a brand new theme and selling more. Standards be dammed.
ThemeForest feels a bit like a flea market. You have hopes of finding a great deal but most likely you're going to be let down and have no one available to help you. In the long run this hurts the WordPress community. Instead of WordPress being known for it's ease of use WordPress will be associated with snakeoil salesmen. I don't want that rap and nor should anyone in the WordPress community. We need to encourage these marketplaces to cut out the garbage or at least expose the theme as being substandard so the buyer is made aware.