The demand for WordPress development continues to grow and almost all of our clients now have either a WordPress site or an embedded WordPress blog. It's a solid move – not loved by everyone but there are so many themes, plugins, and a vast amount of developers that it makes sense. The ability to modify your web presence without scrapping a platform and starting over is just a huge advantage.
If you ever have a WordPress site you hate, or you simply can't get it to function as you'd like – just find a resource that can fix it for you. A WordPress implementation is only as good as the people who developed your theme and plugins.
We've had such a huge demand that we've had to turn to services and subcontractors that convert photoshop files over to themes, or we purchase themes from third party services. We really love Themeforest for its quality and selection (that's our affiliate link). The bottom line, you should never have to edit theme files unless you're doing something drastic to the theme. All content – pages, posts, and categories, should be editable through your theme's administration.
When we have a theme developed or we purchase one, though, we often find these common issues:
- Categories instead of Custom Post Types – Sometimes the sites have different sections – like News, Press Releases, Product Lists, etc. which work well in a blog style format where you have an index page, category pages and then single pages to display the full content. However, we notice that many theme developers shortcut the development and hardcode categories so you can only use the blog to post this content. This is a terrible implementation and doesn't take advantage of WordPress's Custom Post Types. As well, if you reorganize your categories – you're screwed because the theme is typically hardcoded. We often go in, develop the custom post types, then use a plugin to convert the category of posts to the custom post type.
- Custom Fields without Advanced Custom Fields Plugin – I'm truly surprised that Advanced Custom Fields hasn't been purchased by WordPress and integrated into the core product. If you have posts that require additional information – like a video, an address, a map, an iframe, or some other detail, ACF allows you to program the entry of those elements dynamically into your theme and make them required, defaulted, or optional. ACF is a must-have and should be used instead of Custom Fields because of the control it provides over your theme. Want a video embedded on the home page? Add a custom field that only displays in a meta box on your home page editor.
- Theme Structure – WordPress has a very basic theme editor that we must use at times when clients don't provide us FTP/SFTP access to edit files. There's nothing quite as frustrating as purchasing a theme and having no way to edit the styles, header, or footer because they moved the files to subfolders. Leave the files in the root of the theme folder! Unless you've included some other framework, there's simply no need for all the complex folder structures. It's not like you're going to have hundreds of files in the theme folder that you can't find.
- Sidebars and Widgets – Not having sidebars to include widgets throughout your theme is frustrating… and then overuse of sidebars and widgets for what should be simple options is also frustrating. A sidebar should be limited to content that's static throughout some of your themes' page types but is updated periodically. It could be a Call-To-Action on the side of your content. Or it could be an advertisement you wish to display after the content. But it's not a sidebar and widget just to display a phone number, for instance.
- Hard-coded Options – Social links, images, videos, and every other element should be built into theme options that can be easily swapped out. There's nothing quite as aggravating as having to go into core theme files to add a social profile link in 10 different spots. Add an options page (ACF has an add-on) and put all of the settings there so that your marketing folks can easily add them or swap them out when getting the theme up and going.
- Link Lists are Menus – WordPress used to have a links section and they eventually did away with it because menus were a perfect way to implement a list of links to internal or external resources. We often see a single menu programmed into multiple locations on a site, or we see lists displayed in a sidebar widget. If the list is a permanent location and is horizontal, vertical, or hierarchical… it's time for a menu.
- Index versus Front Page – The index page should be reserved for your blog and listing out the posts that you're producing. If you wish to have a custom home page that isn't the blog posts, you should incorporate a Front Page template file into your theme. The Administrative > Reading settings within WordPress allow you to set which page you wish to have as your front page and which page you wish to have as your blog page… use them!
- Responsive – Every theme should be responsive to the different heights and widths of the plethora of viewports people are using across mobile devices, tablets, laptops, and large displays. If your theme is not responsive, you're hurting yourself by not providing the appropriate experience to the device used. And you may even be hurting yourself by not getting mobile search traffic to your site.
Another great practice that we're starting to see is theme developers and theme sellers also including a WordPress import file so that you can get the site working exactly as it appears when you purchased it – and then you can just go in and edit the content. Purchasing and installing a theme – then previewing a blank page with none of the great elements and features that the theme's design was showing is aggravating. The learning curve is different on complex themes and developers often implement features differently. Great documentation and starter content is a great way to help your customers out.