A Guide To WordPress
What Is WordPress
Currently approximately 35% of the internet is built off of the WordPress platform. That is a lot of sites, and it makes sense as a web designer you should know what it is and how to use it. As a designer, WordPress is probably your most valuable tool. It allows you to build sites quickly and offers an incredible amount of customization. However, in order to be successful you should know what it is and how it works.
So what is it? At its core, WordPress is a CMS (content management system). What this means is, it is a is an application that is used to manage web content, allowing multiple contributors to create, edit and publish content. In a CMS this content is typically stored in a database and displayed in a presentation layer based on a set of templates. Now while hopefully that make sense, in the spirit of this course, I will try focus less on the technical definition and more on what I see as the key pieces of WordPress, how I use them, and attempt to relate them to the technical definition in a practical way. These key pieces are the content creation system as a whole, pages, posts, users, themes and plugins. Let’s get started.
The Content Creating System
Additionally, not just anyone can create content. Each instance of WordPress will have ‘users’, and depending on what an individual user’s ‘role’ is, they will have a the ability to perform different tasks on the site through the WordPress dashboard. This is a very important part of the content creation system and WordPress as a whole, as it allows users to easily manage their website and content through a graphical user interface. From this space, users can create pages, install plugins, create users and manage their entire site without having to actually edit files or interact directly with the database where all of the websites data is actually stored.
Lastly, there will always be some functionality that you will need/want on your site. Be it the ability to book a service through a calendar, purchase products, or get analytic reports. They aren’t a part of your theme, so in order to get them on the site you will need to install ‘plugins’. These plugins have their own templates that when installed on your site and embedded on a page, through the use of hooks and shortcodes, will bring the new desired functionality to life.
In short, users are able to manage their site and create content, without editing databases or writing any code. Using the dashboard, themes and plugins, WordPress manages all of this content and coverts it into a web page that browsers can understand.
Themes are the backbone of every WordPress installation. Essentially the theme is the framework of your site and you can not have a WordPress installation without one. In fact once you install WordPress one will be active by default, and you can then change the it by picking between some free options out of the box or upload your own. Ultimately, the theme you use will determine the core tools and layouts that you will be working with, and it accomplishes this through the use of templates and a key file called ‘functions.php’.
The templates are pretty straight forward, they are a template of what the different pages of your site will look like. However, when I say pages I mean a web page. This distinction is worth making because any theme is going to have a few key templates – pages, posts, headers, and footers (though there will most certainly be more).
‘Pages’ are pages on your website that are traditionally more static in nature. A prime example would be your homepage or your about you page. They don’t really have a content type and serve as a containers for all your information and a navigation platform. Think any traditional web page. This is very different from the ‘post’ type, which is much more dynamic in nature and are usually attributed a particular content type or ‘category’. If you create a post, you will most likely be creating other posts like it. The best example is probably a blog. The page that all the articles are visible would be a ‘page’ and the individual articles themselves would be ‘posts’. Now, your theme is what will control what these pages look like and how they function. the page layout is defined in a file called ‘page.php’ and the post layout is determined in a file called ‘single.php’.
Your header and footer (defined in header.php and footer.php) will be present on both pages and posts and are what the top of each page ( the navigation bar & logo) and the bottom of each page will look like. The page.php and the post.php files will include the header.php and footer.php files in them, and this is what will give you the overall look of your website.
So now that we know what the basic templates that build our website are, let’s take it one step further. Take the same blog example that we used above. Let’s say that there are multiple people who contribute content and write for whoever it is, and when a user visits a blog post before the content there is a section that shows who the author is with a photo and their user information. How does the site get that information for each author, since each post is displayed dynamically using the same post.php file. That is where the functions.php file comes in and where we start to see some of the real power of WordPress. The way that this site gets this information is when someone writes a post, it is stored in a database with the author who wrote it. There would then be a function, that the theme creator coded, in the functions.php file that would get the authors photo, name, and information and then display it. This function would get a name and would then be included on the single.php file above content section of the page. So when a user opens an article, that function would run and display the author who wrote it, and because it is dynamic this will work regardless of the author or article that the user clicks on. In fact this is exactly how the page knows what content to display as well. Take a look at this example of a standard single.php file. As you can see it is a pretty short file, a it primarily consists of functions. What these functions do is allow the page to dynamically get the information for the page so each post will look the same, using the same file, but can have different information.
So hopefully, this paints a picture of just how critical the theme is to the website you design, because they are not all created equally. A very static theme that isn’t very complicated will not give you a large amount of freedom to customize it without actually going in and changing the templates themselves. These are great for people who want to build a website quickly without any technical knowledge. You know exactly what it will look like, but you can not really change it. However, there are other themes that are much more dynamic and give you a lot more freedom to customize the site, and this is usually accomplished through the use of builders. These themes usually cost some money, but have a much more robust framework that will actually allow you to dynamically change the layout on the templates without having to write any code. These themes are extremely complicated, but luckily, as a designer you don’t have to understand how they work. The tools have been created for you, it is your job to understand how to use these tools to create website for your clients. Hopefully all of this has made sense, but if you have any questions or would like some more technical information, feel free to post them in the comments section below. A lot of this knowledge is not necessary to becoming a designer, but will ultimately make you better if you understand it.
As discussed above, posts are the part of any WordPress installation that are meant to be continuously created. however, there is a lot more power behind the post type besides just creating content. Beyond just allowing content to be created dynamically and related to each other, posts open the capability to expand the functionality of your website through the ‘custom post’ type. What this means is that beyond the standard post type that comes with every instance of WordPress, additional posts types can be created that sit on top of the currently installed theme that can expand its functionality. If this sounds familiar you would be correct, as this is exactly what plugins use.
An example of this is, say you are once again creating a blog. Well, the blog posts would be the standard post type, but beyond just writing blogs you also want to sell some products to expand your brand. To do this you will need to install a plugin. Your WordPress installation would then have a custom post type of products, with all sorts of different functionality that would allow you to now sell your products. It may not have anything in common with your blog posts, but at their core they are still both the ‘post’ type.
Users are a pretty straight forward but still a very important and useful part of any WordPress installation. When you install you theme, you are going to by default have a variety of different types of users, and they type of user someone is will determine the capabilities they have on the site. These roles are: administator, editor, author, contributor, and user.
As the creator of the site you will be a admin user type, and this will allow you to install plugins, manage other users and make changes all across the site. However, you obviously don’t want just anyone to be able to make changes to your site, and because of this they will have a different user type that will restrict what they can do.
By default editors have full control on the content sections your website. They can add, edit, publish, and delete any posts on a WordPress site including the ones written by others. An editor can moderate, edit, and delete comments as well.
Authors can write, edit, and publish their own posts. They can also delete their own posts, even if they are published. However, when writing posts, authors cannot create categories but can choose from existing ones. They do not have access to settings, plugins, or themes, so it is a fairly low-risk user role on a site with the exception of their ability to delete their own posts once they’re published.
Even below the author role is the contributor. Contributors can add new posts and edit their own posts, but they cannot publish any posts not even their own. When writing posts they can not create new categories and will have to choose from existing categories. However, they can add tags to their posts. The biggest disadvantage of a contributor role is that they cannot upload files (meaning they can’t add images on their own article). Contributors can view comments even those awaiting moderation. But they cannot approve or delete comments. They do not have access to settings, plugins, or themes, so they cannot change any settings on your site.
Lastly there is the subscriber. Users with the subscriber user role can login to your WordPress site and update their user profiles. They can change their passwords if they want to. They cannot write posts, view comments, or do anything else inside your WordPress admin area. This user role is particularly useful if you require users to login before they can read a post or leave a comment.
Besides the default user roles, you are also able to create your own user roles. This is particularly relevant when you want to have subsets of the subscriber role and restrict content for particular users. A perfect example of this is this website. As a customer of Morgan Web Development, you can be a member of the school, or you can be a client who purchases web services. These two types of users have access to very different types of content, and this is accomplished by creating a custom user type.
Plugins, as it has been mentioned several times, allow you to expand the functionality on your site. If you want to allow users to buy products, have a booking calendar, or even have a nicer registration process than what comes default with WordPress. Well, all of this is accomplished by plugins. It is nothing that we haven’t mentioned before. What is important to know is that not all plugins are created equal and they are completely separate from the theme use are using unless they are created by the same people who wrote the plugin. What the means is that anyone can write a plugin and sell it. Just because you find it and can buy it does not mean it is any good. It can have vulnerabilities that put your site at risk and it can straight up not work. There is nothing that says the plugin you buy has to be a worthwhile product. Because of this it is extremely important that you research the plugin before you purchase it or install it. Read some reviews and see how many people have installed it. This will tell you a lot about the quality. Another key indicator that it may not be great is if it is free, and in this respect it makes sense. You get what you pay for, and if you want free then you are either going to get a free product that works as such or it is a product that will try to get you to upgrade to a paid version. Beyond the quality of the plugin, you also need to be aware that it was probably written by someone other than who wrote your theme, and it is entirely possible that is will not be compatible with the theme you are using or you current version of WordPress. What this means is that it has the possibility to break your site. This isn’t a huge deal as you can always deactivate it, but due to the implications that it entails it is very important to know.
In conclusion, WordPress is a very complex system that allows you to easily create top of the line websites and manage your content. However, it is not so easy that you can simply pick it up and it will work. It takes practice and a base level of understanding. Think of it as a middle ground between drag and drop static web builders like what is offered at Godaddy, which never work or look very good, and actually developing sites. It is a web designers perfect tool. Will a small investment in some quality themes and plugins there is very little that you can not accomplish with it. As long as you know how to create pages and posts, set up and manage user types, and research and install plugins, you will be alright and the rest will come with practice. My only last bit of advise is to purchase a theme with a solid reputation of support and allows you to dynamically build out post and pages with a builder. During these course I use Themify and strongly recommend it, but there are others out there that accomplish the same thing. Find one that you like, stick with it, and become and expert in it.