Browsed by
Author: Kyle

Co-founder of Real Big Marketing, WordPress enthusiast, plugin developer and guitar player.
HOA 30: Interview with Chris Klosowski

HOA 30: Interview with Chris Klosowski

Chris Klosowski is a developer at GoDaddy. He’s also a WordCamp speaker and an expert on plugin development.  Chris’s famous WordCamp speech, “Honey, I Shrunk the Logs” is a must see for anyone into debugging.  This was a great interview and Chris shared a lot of insight into the hosting space and what’s in store for the future of WordPress hosting.

 

Chris is…

  • A WordPress wizard
  • A software developer at GoDaddy
  • A prolific plugin developer
  • A WordCamp speaker

In the never ending debate about hosting servers and companies, this is a must see interview.  You can learn more about Chris on his blog, Kung Fu Grep.

Guide to WordPress Child Themes

Guide to WordPress Child Themes

Last week we discussed child themes in episode 14. We touched on all kinds of different aspects of this important concept and explained the what, when and why in great detail. Here is a structured outline of what we covered and generally everything you need to know to understand and take advantage of child themes.

What is a theme?

A theme in WordPress is the code that determines how a site looks. Think of the theme like you would your clothes. It determines the style of the site but not so much what it does or how it works.

Every WordPress site requires a theme to work. It can be extremely basic or extremely complex. WordPress comes with a default theme installed in most cases. The default theme used by WordPress typically changes each year, the current one being Twenty Fourteen.

Themes can be obtained all over the web. The WordPress.org theme repository contains thousands of free themes which can be downloaded and installed manually or right within the WordPress dashboard. More free and premium themes can be found across the Interwebs. I’d recommend checking out episode 5 where we talked WordPress themes if you would like to learn more about them and where they can be found.

What is a child theme?

A child theme is a WordPress theme which inherits code from another installed theme. To use a child theme, one must have at least two themes installed: a standard WordPress theme and a child theme. The child theme will be the active theme (only one theme can be active at a time) and in its code, it will reference the other theme, indicating to WordPress that it is the “parent” or “template” for the current theme.

How does a child theme differ from a parent theme?

A child theme will typically have a lot less in it than a parent theme. This is because the only files that exist in a child theme are the ones being used to override values, templates and information created by the parent theme.

A child theme is also different in that it cannot exist on its own. In order for a child theme to be recognized by WordPress and for it to be activated, a valid parent theme must be installed and properly referenced by the child.

How do they work?

To understand how child themes work, we must first discuss the different components to a theme:

  1. Stylesheets – contain CSS which determines how everything looks. Colors, fonts, sizing, alignment, etc. are all handled in the CSS.
    1. Example: style.css
  2. Templates – contain the markup which determines the structure. These define what information shows where and when.
    1. Example: footer.php
  3. Functions – any special functionality like settings, widgets, shortcodes, post types, etc. that a theme creates is stored in the functions file.
    1. Example: functions.php
  4. Assets – any files that don’t fit into the above categories. Typically images, javascript, fonts and other such items which are included as needed.
    1. background.png

Now that we understand the different types of files that exist in a theme, we can break down exactly how WordPress handles them when a child theme is active.

  1. Stylesheets
    1. Load in addition to parent theme
  2. Templates
    1. Overrides parent theme
  3. Functions
    1. Load in addition to parent theme
  4. Assets / resources
    1. Overridden with CSS or function

In plain English, whenever someone visits a website with a child theme active, WordPress says:

“Ok, first off I need to load all the functions from functions.php in both the parent and the child themes. For this I don’t care if we’re loading a front-end page or a back-end page. Just load them all and proceed unless we hit a conflict like multiple functions with the same name or something. If that happens, we’ll just die and leave blank white-screen-of-death.

When we’re done with the functions we need to grab whatever templates are needed for the current page being requested. To do that I’ll look first in the child theme and, if I find what I need, I’ll use that. Otherwise, I’ll just use the one in the parent theme.

Then I need to grab the stylesheet for the parent theme followed by the stylesheet for the child theme. Alright, last I’ll throw in these javascript files, images and other nonsense that was requested in the files I already loaded”.

Why use them?

Here are a few compelling reasons to use child themes:

  • Updates – Much like plugins and WordPress itself, themes sometimes need to be updated. Updates come from the original author of the theme and help make the theme more secure and generally work better. It is very important to always keep your themes up to date. The reason child themes are necessary is because any changes made to a theme’s code will be overwritten when an update occurs. This means if you change anything inside the code for a theme, it will be lost the next time you update the theme. Child themes create a separate directory for your changes to exist in where you can safely override the parent theme without actually editing it. This makes all of your code changes completely update safe.
  • Warranties – In some cases, theme providers may provide support for the theme you obtained from them. However, most of the time, they will be unable to support and assist you if you have modified the code directly. This is much like buying a computer or a washing machine where tampering with the device can void your warranty. Keeping your changes separate in a child theme makes it so the original developer can continue to support you.
  • Support – Similar to the last point, supporting a theme (or any software for that matter) is incredibly difficult if it has been modified. The original author, or really any developer, will have a hard time determining what is going on and why things are not working correctly if your changes are intermingled within their code. Separating your code from the original source by using a child theme is a great way to maintain clarity for everyone involved.
  • Re-using the original – A time may come where you want to re-use the original theme as it was. If you have modified it directly, this can be more challenging whereas if your changes are maintained separately in a child theme, this is very simple.
  • The blame game – If your changes have been applied within the original theme, broken features and functionality cannot be as easily solved and can often result in a “blame game” between yourself and the original author. If your changes are separate from the original code base, it is a simple task of activating the parent and then the child theme to determine where the problem lies.
  • Multisites – I have had lots of experience managing WordPress multisite networks and know how valuable child themes can be in that instance. It is not uncommon to desire a similar layout/design across a network of sites but need some small differences for single or groups of subsites. Using a parent/child method allows us to maintain a main theme for all sites to use while activating child themes selectively for subsites that require overrides.

When to use them?

So exactly when should we be considering the use of child themes? Here are a few instances where it makes sense:

  • You prefer to make your code changes in a code editing program/IDE like Sublime Text, Netbeans, PHP Storm, Notepad++, etc.
  • You need to modify PHP templates
  • You need to introduce new theme-specific functions
  • You need to incorporate new theme-specific assets
  • You are making lots of styling changes and prefer a traditional development workflow
  • You have reason to believe that the parent theme may:
    • receive an update
    • need to be re-used
    • need support from the original author
  • You want to version control your changes

When not to use them?

Now let’s consider some instances where using a child theme may not be necessary:

  • You have no need to change any code
  • You are only making small CSS changes
  • The original theme will never, ever be updated
  • The original theme will never, ever require support

Regarding the second bullet, in the case where the only code that is required to be added is some basic CSS, it may be wisest to utilize a custom CSS tool within the WordPress dashboard. There are many themes that include an option for this and plugins available as well. These work by saving your CSS to the database and outputting the code in the header of every front-end page.

How do you create them?

Creating a child theme in WordPress is not difficult. Let’s lay out the steps and make this simple:

  1. Ensure that a valid parent theme is installed.
  2. Create a new directory in wp-content/themes and name it something like child-twentytwelve-mysite. You can name the directory anything, just don’t include spaces. I recommend using a consistent naming convention across all of your projects though. The format “child-parent-site” is one I use on all of my projects so that I can clearly see at a glance that the theme is a child, what its parent is and what site it was made for.
  3. Create a file named style.css in this new directory.
  4. Open up the style.css file in any editing program (I like Sublime Text 2) and the following code to it (customize as needed):
    /*
    Theme Name: Your child theme's name
    Author: Your name
    Description: Child theme made by me for my site.
    Version: 1
    Template: parent-theme
    */
    
    @import url("../parent-theme/style.css");
  5. Save that file and upload your entire new theme to wp-content/themes on your server.
  6. Login to your site and activate the new theme.

It is worth noting that there exists a great plugin out there that can help make this just a little bit easier.

editing

Once a valid child theme has been created and activated, development can begin. Here is how you will implement your changes when working on a child theme:

  • For styling changes, add your new rules to style.css
  • To change the contents of your templates, locate the template you want to modify in the parent theme, copy that file, paste it into your child theme and then get to work on it. WordPress will automatically begin using this new file instead of the one in the parent theme.
  • To add functionality, create an empty functions.php file in your child theme and begin placing your PHP scripts there. If you are incorporating lots of functionality and this file becomes too lengthy, it is common practice to use the include() or require() functions to reference other files that contain more functionality, generally stored in a subdirectory in your theme called “functions” or something like that.

Other notes

Here are a few other items worth noting:

  • While child themes are the “right way” to apply changes and modifications to a theme, there is no support for grandchild themes. This is a common issue for those purchasing/downloading child themes for popular frameworks like Genesis. The proposed standard for applying override changes in that scenario would be to use a custom plugin.
  • Modifying functionality in a parent theme is not as simple as overriding a template or adding new CSS rules. This gets into some more advanced development topics and generally requires an understanding of PHP and WordPress hooks. Many theme developers make customizing their themes easier for future developers by including hooks (actions and filters) throughout their code. This allows developers to add to or modify the original code without actually editing it directly. A smart move for those getting started would be to narrow your choices of theme providers to those who employ good practices like adding hooks throughout their code.
  • When it comes to functionality, functions.php works essentially the same as a plugin in WordPress. Both the functions file and all active plugins are run on every request, front-end or back-end. While there are few technical differences between the two, there are lots of practical reasons why one may be chosen over the other when implementing new functionality. For example, if a feature needs to be added that has little or no bearing on the design of a site (like adding Google Analytics tracking code or making a “members only” area) then it is generally best to place the code in your own custom plugin. Whereas when functionality being added is completely dependent on the theme (like an option for changing the header’s background image), the code should more logically be placed in the child theme’s functions.php file. This is really for practical reasons rather than technical reasons and there are very interesting debates and discussions about this in the WP community.

Resources

WordPress Plugins I Can’t Live Without

WordPress Plugins I Can’t Live Without

I’ve used a lot of WordPress plugins over the years and think it’s about time to share with the world which ones I’ve been happy enough with to continue using over and over.

Woocommerce

woocommerce

 

I make lots of e-commerce websites and have tried most of the major plugin options out there. Woocommerce has some truly compelling selling points. For starters, it is simply a well-made, powerful plugin that can handle the vast majority of my requirements out of the box. I find it to be very easy to use and more importantly, to teach.

In addition to the actual Woocommerce plugin being excellent, the huge market of extensions are as well. This is probably my favorite part about using Woocommerce. When I do run into something that Woocommerce doesn’t do for me (like integrate with a specific payment gateway) I just start browsing the web to find someone who has made an extension which solves my problem. Few WordPress plugins have been so successful at cultivating their own communities and getting other developers to extend their product. It is pretty amazing.

Of course, the fact that this plugin is completely free doesn’t hurt. But also, I love how well it plays with the themes I frequently use and how little I have to do to make it look presentable.

Advanced Custom Fields

advanced-custom-fields

Another plugin that is far from the only option, ACF is my #1 choice for creating and managing custom fields for all of my post types. I have definitely tried many other options including creating the fields manually from scratch which isn’t all that difficult and is probably my second favorite option.

Using Advanced Custom Fields is very easy in every aspect. Creating the fields, modifying them, configuring options for the fields, arranging field groups and finally, implementing the values into your theme are all very easy.

Much like Woocommerce, there are also many extensions available for ACF. As I mentioned earlier, I really appreciate this. Being able to find pre-made solutions that work well with your existing plugins is awesome and why I love plugins with extensions. One of my favorite ACF extension is the Repeater Field which allows users to create an unlimited number of field=value sets. Powerful stuff and a good example of something I’m just not interested in developing myself.

CPT-Onomies

cpt-onomies

Rarely have I worked on a site that does not require the existence of a few custom post types. As a result, I need a reliable, powerful solution for creating and managing my post types. CPT-Onomies has become my favorite tool and I use it on most of my projects.

Post types are another area where I have played with the other options out there and have even developed mine from scratch. Much like custom fields, it isn’t that hard. That said, I still use CPT-Onomies as my default choice now for a number of reasons.

First, I absolutely love the “onomies” part of this plugin. I’ll try and explain what this means. Taxonomies in WordPress are meta data for posts that help to categorize and organize information. The default “tags” and “categories” are examples of taxonomies. Now what CPT-Onomies allows me to do is to make a post type also be a taxonomy. This way, a particular post type can be displayed on other post types as a taxonomy and the terms will be automatically populated with all the posts of that type. This has been incredibly valuable for me on numerous projects.

In addition to the aforementioned features, CPT-Onomies is also very well documented with excellent examples on Rachel Carden’s website. Invaluable.

Query Monitor

query-monitor

So far, Query Monitor has been the ultimate debugging and development aid. I love this plugin for many reasons. First off, it provides incredibly detailed information about the current page. Information such as the database queries that were run when the page loaded, the action hooks run on the page and the functions attached to them, the current post/page template being used, the WordPress conditional tags available for the page and much more. This information makes developing so much easier than it ever was before. I am constantly referring to hooks list provided by Query Monitor to understand where and when my functions can be loaded, what other functions are being loaded, which plugins or theme is loading them, what the priorities are for every function, etc. So informative.

The database queries information is also incredible valuable. As we all know, it is critical that our sites load quickly and one of the factors that impacts page load is the queries to the MySQL database. Query Monitor not only lists them all out but also displays the time it took for each query to run. Super handy.

I also value how unobtrusive and yet accessible this plugin’s information is. All it does is adds a dropdown menu to the admin toolbar from which you can select what information you’d like to display. Once selected, it renders the information inline in the current page’s footer. Simple and straightforward.

Gravity Forms

gravity-forms

Rarely am I working on a website that doesn’t require any forms. And when it comes to forms, I only use one plugin. Gravity Forms is such an awesome plugin that I actually look forward to the work I have to get done with it. It is so easy to create forms and implement complex functionality. I’ve made all kinds of forms from scratch and with other plugins. Nothing comes close to the quality I can produce and speed in which I can produce it with Gravity Forms.

Display Post Meta

dpm

This was the first plugin I ever published on wordpress.org’s plugin repository and is still to this day one of my most frequently used plugins. It’s function is simple and supports me a in a way similar to Query Monitor. When active, Display Post Meta adds a ‘DPM’ link in the admin toolbar. When clicked on, meta information pertaining to the current post is displayed. This meta data includes all of the custom fields being used including both their keys and values as well as all registered taxonomies for the current post type and the terms associated with the current post.

Very simple function which makes customizing templates and other development tasks much easier. Also, I’m still actively developing new features for this plugin so stay tuned if this seems like something that might be useful to you.

User Switching

user-switching

Since I discovered this plugin, gone are the days of asking a client to describe in detail to me what they are seeing when they login to the dashboard. I can simply activate User Switching and then “switch” to the client’s user account to see the dashboard/site exactly as they see it. Incredibly useful for anyone supporting other users.

Conclusion

Far from a complete list of plugins I love, this list simply reflects those which I value very highly and would be seriously bummed if they somehow become unavailable for my use. I’d love to hear your opinions in the comments regarding plugins you love and would hate to live without.

Clef WordPress Plugin Review

Clef WordPress Plugin Review

One of the coolest new plugins I discovered recently that I’m increasingly excited to tell others about is the Clef WordPress Plugin. I had heard of it a while back but only recently started using it. Clef has recently become one of my favorite new services.

What is Clef?

Clef is an awesome young company based in Oakland, CA. They have thus far one product offering which is their unique and progressive authentication system. This system allows users to login to websites using their phone as opposed to strictly the traditional username/password credentials.

Why is Clef so awesome?

Primarily because security is a really, really big deal. As a webmaster myself, I’m keenly aware of the risks and dangers on the web and how vulnerable my sites can be. Truly the most significant vulnerability though has nothing or little to do with the software powering my websites. The big problem is user logins and passwords. This is typically the easiest way for a site to become compromised and for user credentials to stolen. Clef does an amazing job of preventing this problem.

How Clef works

When using the Clef WordPress plugin, users who visit a site’s login page will see a “Login with your phone” option. Clicking this will present an animated barcode on the screen. It looks pretty sweet.

At this point, the user must pull out their phone, open the Clef app, type in their four digit pin and point their phone at the computer screen. An animated barcode will appear on the phone screen and the user simply has to line the barcode on the phone up with the one on the screen and then they will be logged in on the computer and also be given an option on the phone for how long they would like to remain logged in. Very simple and quick.

Actually it probably sounds harder than it is. Really, it is super easy and also…kinda fun.

Other notes

Regarding security, this really is a huge step forward for everybody. Eliminating the password and requiring the second authentication factor greatly decreases one’s vulnerability in a number of aspects. One that I find particularly cool is the fact that now it can be safe to logon to unsecured sites on public wifi. Without Clef, this would be a very dangerous practice as network activity on public wifi can be viewed by others. This includes usernames and passwords. So if you are logging into a WordPress website that is not encrypted while sipping some java at your local coffee shop, you are putting yourself greatly at risk. That is until you get an SSL certificate or just start using Clef.

If you want to learn a ton more about Clef, you should totally watch our recent round table episode where we interviewed Jesse Pollak, Clef’s CPO. In our discussion we talked about the plugin, the business, security, the future and lots more. I was really interested to learn about Clef as a company. I was struck with how productive they have been, how refined and ambitious their vision is and how mature and knowledgeable they are as a startup. I expect great things to come.

I’m really excited to see where Clef goes in the future as a company. They are actively developing other products and services based around their awesome system. I can envision a day when Clef plays a much more integral role in our daily lives.

WordPress Permalinks for Beginners

WordPress Permalinks for Beginners

Without a doubt, one of the most awesome features built into WordPress is pretty permalinks. For those wondering permalinks are, they are the text/characters that exist in the address bar of your browser. Every Content Management System (CMS) has its own way of handling permalinks. Some will add the file extension to the end of every permalink (index.html, about.aspx, contact.php, etc.), some will be totally unreadable strings of characters and others, like WordPress will be easy to read, pretty permalinks.

Pretty permalinks are awesome for two main reasons:

  1. Humans can read and understand them. This is really important as there may be many instances where users see your permalink and will make a determination about whether to click on it or not based on what they interpret from the URL. Some users may find themselves needing to type in a URL string directly. This happens to me all the time when I give lectures and want to write a URL on a white board. In those moments I am grateful for easy to read and remember permalinks.
  2. Search Engines can read and understand them. SEO is incredibly important and one very important factor in any page’s rankings is the permalink. Check out what Yoast and Matt Cutts say on the topic. They’re the experts.

With those factors in mind, it is easy to understand why permalinks matter so much. Now I’d like to give some practical guidance on setting up your WordPress permalinks.

Choose the right permalink structure from the start

One of the problems that many webmasters encounter is the challenge of changing their permalink structure down the road. The problem lies in the fact that changing the permalinks for your posts can and often does result in links on your site and other’s sites breaking because they no longer point to the correct locations of your posts.

Of course, it is important to disclaim two points:

  1. WordPress does a really good job of fixing most of these issues for you
  2. For the issues WordPress doesn’t fix for you, it is not too difficult to patch things up yourself (resources like this from Yoast are great)

That said, the truth is that the easiest and cleanest option would be to just choose wisely from the start and not have to deal with creating .htaccess redirects, monitoring 404 errors and dealing with lost end users. For this reason I strongly recommend doing some homework to determine what is the best structure for you before you even launch your site.

Context does matter to users

I witness many people considering a little too heavily the SEO factor only and not much the equally important end user experience. What I’m talking about here is the inclination many people have to use the /%postname%/ structure or something similar that does not include any date reference. I would encourage you to strongly consider including the date in some form or another for your posts permalinks as it gives your viewers a clear point of reference and helps them understand how recent and relevant your content is. I have encountered many problems when referencing content from the web which I couldn’t put a date on. It is frustrating to me and to many other users so thanks for being considerate here.

The permalinks settings refer only to your blog posts

In case this wasn’t clear, your blog articles are the only post type which gets this special permalink option by default. Pages and other post types are not generally affected by this feature. They can be adjusted though by your friendly neighborhood developer.

Flushing your permalinks

Every time you hit the Save Changes button on your Permalinks menu, WordPress “flushes” its internal record of saved permalinks. This process basically does a quick reset. It is helpful to know about this as there are times when themes and plugins create features, post types, archives, pages, etc. which may have special permalink requirements. If you find yourself scratching your head about why certain pages are giving you a 404 error, try flushing your permalinks.

Website Hosting Recommendations for WordPress

Website Hosting Recommendations for WordPress

So you’re trying to decide where to host your new WordPress website. Awesome. First off, way to go choosing WordPress. The good news for you is that, since WordPress is the number one Content Management System (CMS) on the web, it is very well supported by most hosts.

That said, there are still many things to consider before making your choice. Depending on what you are doing with your site, subtle differences between hosts could have a huge impact on you and your business.

During my time developing websites over the past few years, I’ve had the “privilege” of getting opportunities to interact with and learn about quite a few different hosting providers. As such I’ve observed many commonalities and developed strong opinions on what is important and what to watch out for as well as which providers and types of providers are best suited for certain situations.

Alright, enough with the preface. Regarding format, I’ll be walking through a few common situations you may find yourself in and will attempt to advise on which factors will matter.

Just getting started blogging

If you are looking to get a basic WordPress blog going and have not worked much with WordPress before than there are plenty of decent options for you. The first question I’d consider would be what you intend to do down the road with the blog. Do you plan on growing the blog much bigger and eventually implementing cool features like e-commerce and memberships? Are you looking to really customize your blog or are you content with a standard, template design?

Based on the answers to questions like these, I’d likely end up recommending the following solutions:

  • For the really basic blogger who will not likely wish to customize or expand beyond blogging: WordPress.com
  • For the blogger / beginner webmaster who would like access to extra premium features as well as an awesome support team but not worry about stuff like servers and hosting configurations: RealBigWebsites.com
  • For the person who doesn’t mind being responsible for installing WP, managing their cPanel settings, interacting with tech support and paying a small monthly fee: Bluehost.com shared hosting

Getting started with a business website

If you are looking to go a little bit beyond just blogging and really need to do more with your website, then some bigger questions will come into play. What kind of features will your site need? E-commerce is a pretty important feature, especially if you need to use SSL. Do you anticipate decent amounts of traffic? Are you comfortable working with tech support, installing WordPress, creating FTP accounts, managing your e-mail accounts in cPanel and other such tasks?

Based on answers to questions like this, I’d probably recommend some of the following options:

Multiple business websites

If you are planning to host multiple sites there are just a few new issues to consider. Questions like how many of them will require SSL and/or dedicated IP addresses? Will they all be running WordPress? The good news is that most hosts handle more than one site in the same account pretty well.

WordPress Multisite required

Multisite takes the complications to a new level for most beginners. I’ll simplify this by saying just don’t try to do this on shared hosting. If you need multisite, expect to spend more time and money. Not to scare you away from using multisite, but just be aware that it is a more complicated animal and few hosts will support this well.

Big time WordPress needs

If you are seriously looking at making high performing WordPress websites that can scale to any size, handle any traffic and accommodate any features, than I’d strongly recommend using a WordPress focused hosting provider.  WP Engine is my favorite and what I use but Page.ly is also highly reputable and does a fantastic job as well. These hosting providers not only server WordPress customers exclusively but also have their servers highly customized to make your sites perform at their best. They also do a great job of answering WordPress related questions which is something you will not find at generic hosting providers.

Conclusion

Certainly whole books could be written on what I couldn’t cover in this short blog post and I’d be happy to write it. At this point, we’ll have to leave this as a starting point for those weighing their options as they get started. I encourage you to leave comments with questions and opinions. I’d love to continue the discussion and talk about why some hosting providers don’t get mentioned above, how to choose between the ones I mentioned and what more detailed factors need to be considered than the high level questions I raised here.

Why I use WordPress

Why I use WordPress

I love WordPress. No question. No apologies. I’m a huge fan of the CMS use it every single day. But as I write this I find that I must make a distinction. My first inclination is to write all about the many reasons that I love WordPress. However, the topic this week is why we use WordPress. Subtle difference but does significantly impact the content of today’s post for me.

If I were to write about why I love WordPress I’d probably spend a lot of time describing the amazing community behind this platform and the open source philosophy among other things that personally resonate with me. But that will have to be the focus another day.

Today, I’ll focus more on the practical reasons that I, a business owner and web services provider, have chosen to use WordPress exclusively for all website related projects.

Just for the sake of reinforcing my position, I’ll first make it clear that I have not always used WordPress exclusively. I began developing websites from scratch some years ago, shortly after taking an Adobe Dreamweaver elective class in college. For some time after I was churning out straight HTML and CSS websites for clients and employers. Along the way I experimented with systems like Drupal, OS Commerce. Cake, Front Page, Blogger, Google Sites, Sharepoint, Magento, Shopify, Joomla, Zen Cart and plenty others besides. Along the way, WordPress kept coming up more and more with clients, employers and in online discussions. I used it originally as the solution for my employer’s blogs but quickly found that it’s capabilities were far more expansive than I realized.

Now, enough intro info, here’s why I actually use WordPress:

WordPress is the most widely used CMS

Check my facts here. WordPress is clearly dominating the CMS market with a 60.4% share at the time of this writing. Now I realize that “everyone else is using it” is not always a compelling argument. But I do believe it is in this case. In technology, having a large user base positively impacts everyone. I’ll break this point up into several sub-points.

WordPress is well supported

Having worked in technology for a while, I know what it is like to work with software providers who don’t have a large user base. I know what it is like to stump the support team because they just haven’t encountered anyone using their software like I am using it. In a massive community like WordPress, that never happens. Everything I attempt to do with WP has been done hundreds if not thousands of times by others before. And if bugs are encountered, they are quickly discovered and squashed on subsequent releases.

The WordPress market is enormous

Because more people are using it, more people are developing for it. There are an incredible number of free and premium themes available for WordPress. There are thousands and thousands of free and premium plugins available for WordPress. There are incredible WordPress focused hosting providers like WP Engine which only serves WordPress customers and does it very well. There are tons of service providers like Sucuri (site security and malware removal) and WP Maintainer (another similar service) which exclusively serve WordPress clients.

And much like the point above, for the most part, a lot of these services and products for WordPress are also very well supported due to the large user base.

WordPress learning resources are available in abundance

It is really easy to learn WordPress not only as a user (I’ll cover that later) but also as a developer. There are countless training sites, blogs, tutorials, forums, videos, books, you name it which are all devoted to teaching you how to use and develop for WordPress. Coming from someone who is 100% self taught, I’ll say that this is incredibly important. I value very highly the extensive articles and tutorials available online that help me do my job better. No other CMS can come close to competing in this arena.

WordPress is pretty darn easy to use

Ease of use is a huge factor for me. Consider the following factors:

  • I need to be able to use, understand and develop for the platform
  • My employees need to be able to use, understand and develop for it
  • My customers need to be able to use it
  • Many of my customers are already familiar with it
  • Many of my customers come to me because they want a site they can edit themselves
  • My employees need to be able to support it

Factors like these and many others seriously impact my decision to use WordPress. I cannot sacrifice any of the above. If my customers all came to me and said “We are already using Sharepoint and we like it” than I would probably be looking more seriously at Sharepoint. Not a single customer has ever said that to me though for any CMS except WordPress and one who liked Shopify. I know many freelance web developers choose their development platform based on their own personal preferences which is fine. For me though, I weigh the preferences of my clients as incredibly important and as such favor the CMS they prefer. WordPress wins hands down.

WordPress is growing fast

Having been in technology for a while, I know that when I have to choose software for my business, I’ll always favor systems that seem like they are vibrant and growing. Anything that appears stale, no matter how great it otherwise may appear, is unlikely to get my vote as a viable option. As such, I like to look at things like:

  • How often are updates being issued?
  • How active are the forums?
  • Is the user base growing?
  • Are people actively developing complimentary services and products?
  • What kind of support are current users receiving?

Questions like that can tell you a lot. Obviously, I am very pleased with the answers WordPress provides to those and other questions. As stated above, the CMS market share of WordPress is on a steady growth pattern and has been for some time.

I’ve never (yet) had a website project I couldn’t handle with WordPress

I’ve built a lot of websites to date and no two have ever been quite the same. Many of them have been quite advanced in terms of features, functionality and content. Yet I’ve never encountered, or even come close, to a project where I felt I needed something besides WordPress. That is not to say that those kinds of projects don’t exist. I wouldn’t mean to imply such a thing. Rather I am simply stating that I haven’t encountered one.

This may come as a surprise to some and mean nothing to others. For my part, I’m incredibly surprised. Given that WordPress has for a long time been known as a blogging platform and not widely accepted as a viable CMS for business solutions (I was of that mind for a long time), I believe this is an interesting and important point to make.

WordPress talent is easy to find

I’m running a growing business and am always outsourcing work and hiring people as I can. I greatly appreciate the fact that I don’t have to scour the seven seas to find someone who’s capable with WordPress. In fact, I see it appear on more resumes than not. It means I don’t waste tons of time seeking someone with these skills, training them on the basics and then being hesitant to let them go when they don’t work out. Rather I barely have to look at all, training required is minimized and if they don’t work out, I just find someone else. Easy. I love it.

WordPress enables me to do a lot for a little

Recall the abundant marketplace? And the super support? And the easy-to-find talent? Yeah, I use WordPress because it is easy for me to handle whatever project comes my way. If someone is looking for a simple brochure site, I can help them. I can make templated websites, install a great theme and effective plugins and hand over a professional, functioning website. All without exceeding their budget or shortchanging myself. If someone approaches me with a large scale project, I can develop totally custom solutions, integrate with all kinds of services, design something completely unique and hand over a professional, powerful website at reasonable costs.

Conclusion

I hope I’ve been able to shed a little light for you on the reasons behind my choice to use WordPress. Feel free to leave comments with questions or other reasons you may agree or disagree with me. I’d love to hear your thoughts as well.