Reading Time: 13 minutes
WordPress started in 2003. and in its beginnings was a simple blogging tool that let you build and maintain a blog. Since then it evolved to be so much more.
WordPress is still a simple web publishing application that you can use for blog administration but also allows you to build much more complex web sites (actually almost any type of site you want) – web shop, news site, a portfolio, a community site, a business site, forum, social network, etc.
And it’s really easy to get it off the ground. You download it (from www.wordpress.org), install it on a server, connect to database, configure it and start publishing your content. And with addition of thousands and thousands of plugins possibilities are almost endless.
WordPress is most popular content management system (CMS) today. Although there are other content management systems like Joomla and Drupal, what makes WordPress special is it’s community. It’s a free open source application developed and maintained by the people who use it. WordPress is published under GPL (General Public License) meaning you can download it and use it for free, publish whatever you want for free and even contribute back to it.
wordpress.com vs wordpress.org
There are two domains with name WordPress – wordpress.org and wordpress.com. As we already said, WordPress is a free open-source web application that you can download and install on any server and publish content on the web.
wordpress.org is site from where you can download WordPress (application) and read official documentation. Here you can also find the official support forum for WordPress, and read information about the future of WordPress itself.
wordpress.com is a website that distributes WordPress as a software as a service application (for free or you can pay for extra features). Here you need to register and after that you can build your own site on wordpress.com without having to install WordPress itself. Problem is that are some limitations and you will be restricted by the platform and its rules. For example you can’t install your themes or plugins. This is something that you can do without any problems if you download WordPress application from wordpress.org and host WordPress site on your server.
So I recommend that you skip wordpress.com and download WordPress application from wordpress.org and host WordPress site on your own server. Many hosting providers can do this for you if you don’t want to install it yourself or you don’t have necessary rights on that server. You will need three things:
- WordPress application which you can download from wordpress.org
- database where WordPress will store data
- web server that supports MySQL and PHP.
Before continuing with the rest of this article I suggest that you install WordPress on some server. That way you can work with me and experiment with the features.
WordPress behind the curtain (folder structure)
So I presume that you installed WordPress on your server so let’s dive in :).
In this section we’ll cover how WordPress looks behind the curtain. Skip to the next section if you’re not interested in this. However I suggest that you read this especially if you’re going to make a child theme (which I also suggest you to do and we’ll cover this theme little later).
To do this access your WordPress folder – open it directly if you installed it on your local server or use FTP client to connect to a remote server. As you can see in root folder of WordPress application there are several .php files mostly prefixed with „wp“. These are core files of WordPress. I won’t bother you by covering what each of these files do but let’s mention maybe the most important ones. File index.php represents your website homepage. wp-config.php contains base configuration for WordPress, like database name, host, user, secret keys and table prefix. .htaccess contains server configuration file (here you can manage permalinks and redirects).
There are also three folders – wp-admin, wp-content and wp-includes. First of them, wp-admin, holds files for back end (admin) part of WordPress. The wp-content folder contains customization options that you add to your site, like themes and plugins. Folder wp-includes holds all other files necessary for your site to run smoothly.
WordPress site – front end and back end
When you open your WordPress site in a browser you’ll see there are two sides – front end and back end. Front end is part of your site that is publicly accessible, part which your visitors will see. Back end is password protected administration side of WordPress which you’ll use to publish new content (posts, pages, images) and configure everything regarding your site (themes, plugins, discussion settings, users etc.).
To access back end of your WordPress site enter main URL for the site and add „/wp-admin“ to it. Enter your username and password and you should be presented with WordPress back end dashboard.
WordPress admin panel
When you open back end you’ll be presented with Dashboard. This is a landing page for admin panel and provides you with overview of your site (informations like latest posts and pages, comments etc.).
On top of WordPress admin panel is a toolbar. Here you can see WordPress logo, your site name (which if clicked will take you to front end), buttons for adding new posts, pages and media items and some notifications. On the left side you can find admin menu from where you can access all WordPress options. Main area presents different options and features regarding which menu item you selected. Note – if something is missing from main area, for example you added some new plugin that you’ll use with your content and it is not visible, check „Screen options“ feature on top of page, probably this plugin or feature visibility is turned off.
Admin menu on the left side is separated into couple of main sections (options depends on number of plugins you installed) but let’s cover three main sections – dashboard section (which we already mentioned), content management section and site administration section. Under content management section you can view, create and edit posts, pages, media items and comments. Site administration section allows you to configure appearance of your site, download new themes, install and configure plugins and setup overall settings for your site.
So let’s go through main back end options in admin menu.
This is back end main view; a landing view that will be presented to you when you log in to the back end. Provides you with overview of your site with informations like latest posts and pages, comments etc.
Post is primary content type in WordPress which typically consists of text and images and is organized in categories and tags. Or simply put post is an article.
In „Posts“ part of back end you can administer your posts – view all posts, delete them, create new posts, update existing one etc. Besides posts you can create categories which organize your posts. For example categories can be news, music, films, culture, food etc. Each post can belong to multiple categories.
I strongly suggest that you delete default post (Hello world) and category (Uncategorized), create new ones and put each post into some category.
Also under „Posts“ option you can administer tags. Tags presents one more way to organize posts besides categories. With tags you can create connections between posts so when your visitor clicks on some tag he will get list of all posts related to this tag.
We’re not going into depths regarding posts in this article (how to use all editor options, how to insert media into posts etc) but there are several things that I would like to mention:
- When you create a new post, WordPress will automatically save it as a draft. This means that even if you navigate away from the post without clicking “Save” button or you close your browser WordPress will still save your post.
- Revisions – every time you change some post WordPress will automatically save each version of that post. Later you can open Revision tool and see changes between each post versions and when each change was made. You can also recover previous version and set it as active instead current one.
- On the right side of editor you can publish your post or view it’s status (draft, published), visibility, format, categories and tags.
Used for media management (images, videos etc). Here you can see media library, edit your photos or upload new ones.
Here you can view your pages, create new ones, edit existing ones or delete them. But what is a page in WordPress and what is a difference between pages and posts?
For some posts and pages and their differences can be little confusing but it’s actually rather simple. You will use posts for articles and pages for static and permanent content like About us, Contact etc.
You can’t put pages under categories and you can’t add tags to them. They’re only organized based on parent/child relationships which means you can create a page, and then define another page as its parent.
And same thing that I mentioned under posts – I suggest that you delete default page that will be available when you install WordPress.
Used for comments managements. Here you can view comments, approve them and delete them.
Here you can configure your site appearance and to do so you need to activate some theme (themes actually control appearance of your site on the front end). Under this option you can view installed themes, download new ones or configure active theme (change your site header, colors, front page sections, menus, widgets etc). Note that customization options depends on active theme (not all themes have same options).
There are thousand and thousands of themes available (meaning that you’ll probably find a theme that will satisfy your requirements without a need to develop your own theme), some of them are free and some of them are premium (which means you will need to pay before you can use them).
Plugins are what makes WordPress so powerful – they are extensions that add new features and functionalities. You can find plugin for almost anything, like contact forms, backup solutions, brute force protection, SEO analyzers, social components (login and sharing), advanced galleries, maps, web shop plugins (if you install WooCommerce plugin you’ll turn your simple web site into powerful web shop), newsletter support, events calendar etc.
Under this option you can view installed plugins, change their settings, install new ones or activate or deactivate installed plugins.
Note – when you activate plugins a lot of them will become accessible under admin menu.
But don’t install as many plugins as possible and leave them active. Use only plugins you actually need, because some of them can slow down your site (or cause conflicts with other plugins). If you don’t need a plugin anymore deactivate it (or just delete it).
Widgets are little packaged programs that add features and content to your site, for example Search (in sidebar), Categories, Tag cloud, recent posts, pages etc (these are all default widgets that come with WordPress).
You can add them to any area on your site that supports widgets and this depends on active theme.
Use this section for users administration.
General settings for your web site which are divided into following – General, Writing, Reading, Discussion, Media, and Permalinks (this depends on installed plugins but here we mentioned main ones).
Here you can configure site title, url, email address (used for any kind of notifications like approving a comment, new user registration etc.), timezone, date and time format. You can set default posts category, change comments settings (for example you can require that users must be logged in to comment, you can set that every comment must be approved etc) or change permalinks.
As we already said themes control appearance of your site on the front end. Under this option you can view installed themes, download new ones or configure active theme (change your site header, colors, front page sections, menus, widgets etc). Note that customization options depends on active theme (not all themes have same options).
There are so many themes available (thousands and thousands) for you to download (free and premium ones) so you’ll probably find a theme that will satisfy your requirements without a need to develop your own theme
But you’ll probably want to do some customizations and modify your theme, be it changing some styles (or all styles for your site) or adding some new functionality. Now, you can do this under parent theme but I wouldn’t recommend this because if you update your theme your modifications may be lost. But don’t worry, you can solve this problem by creating a child theme. Now if you make some changes in child theme and update parent theme you will preserve all the changes you made.
Child theme is a theme that inherits functionality and styles of another theme, called the parent theme. If you want to make changes in some theme it is recommended to create a child theme for reasons described above.
So how do you create a child theme? It’s actually pretty easy.
You need to open your WordPress folder and locate subfolder wp-content. Then go to „themes“ folder and create a new directory. Name it the same as parent theme folder but add „-child“ at the end (for example if you’re using „twentyseventeen“ theme name your child theme „twentyseventeen-child“).
First we’ll cover styles so create new file and call it „styles.css“. Open it and add following parameters:
Theme Name: Twenty Seventeen Child Theme
Theme URI: Download URL for a child theme
Description: A child theme of Twenty Seventeen theme.
Author: Your name
Author URI: Your URL
As you can see here you can enter your theme name, URL from where your theme can be downloaded, description, author name and URL, version and template. „Template“ parameter tells WordPress which folder contains parent theme.
Now go to admin part of WordPress, click „Themes„ option under „Appearance“ and you’ll see your child theme. If you click on details you’ll see all the info we entered in styles.css file. Activate your child theme and if you now go to your site homepage you’ll see that everything is messed up. Reason for this is that we added a new CSS file which is empty (it doesn’t contain any styles). Don’t worry, we’ll fix this soon.
You can write all styles from scratch or you can copy all styles from parent theme and then make any modifications you want. But I suggest that you leave styles in parent theme CSS file and just reference it in your child theme CSS by adding following line:
After that you can override any style you want (or add new ones) inside child theme CSS file.
And if you need to change or add some functionality (for example you want to add featured image to your pages or search bar in header) you need to change .php files. You need to do the same thing you did with CSS file. Locate .php file you want to edit and copy it inside child theme folder. After this you can change or add whatever you want.
But be careful because in some cases you can’t just copy and paste existing code and add several new lines. This will cause error and your web site will stop working. For example this will happen if you just copy / paste functions.php file and add some functionality (for example add search bar in header). Reason for this is that you’re probably overriding some existing method and you’ll get error like „Fatal error: Cannot redeclare METHOD_NAME()“. If this happens don’t worry. Just delete everything from that .php file except your changes.
If you’re not sure which .php file you need to edit you can install plugin „Show Current Template“. This plugin shows you the current template file name, the current theme name and included template files name in the tool bar.
In this section I would like to give you some advices.
- Maintenance mode – while you’re still working on your site on live domain or if you’re making some updates (for example updating plugins, changing a theme) put it in maintenance mode. You don’t want broken functionalities on live site or that your visitors view unfinished content.
- Child themes – child theme is a theme that inherits functionality and styles of another theme, called the parent theme. If you want to make changes in some theme (be it changes in code or CSS) create a child theme. Reason for this is if you modify parent theme directly and you update it sometime in the future, your modifications may be lost. By using a child theme you will preserve all the changes you made. You can read more about this in the previous section.
- If under general settings you check „Anyone can register“, set a default role for the user to „Subscriber“. This is a dangerous setting because if your website is live and you set it up so that anyone can register, there is a big chance you’ll get tons of bots trying to register to your site. So it’s important that you set the new default user role to „Subscriber“ which is most restrictive role. Users with this role can only manage their own profile.
- Security – although WordPress is pretty safe it is not a bad idea to secure it from spam, brute force attacks, limit login attempts etc. This all can be done via various plugins.
- If you activate some theme and your site stops working (you can’t access front end or back end) probably best thing to do is to delete that theme folder from disk on server – now you can access back end again and activate some other theme.
And in the last section of this article I would like to mention some useful WordPress plugins (in alphabetical order).
NOTE – plugins that are in italic (and bold) are plugins that I suggest you to install regardless on type of site you’re building (other depends on web site type and your needs):
- Akismet – Antispam plugin, comes with WordPress. Akismet checks your comments and contact form submissions against global database of spam. By doing so it prevents your site from publishing malicious content. You can review the comment spam it catches on your blog’s “Comments” admin screen.
- Booking calendar – Booking system for online reservation and availability checking service for your site.
- BuddyPress – BuddyPress adds community features to WordPress. Member Profiles, Activity Streams, Direct Messaging, Notifications, and more.
- Clean login – A plugin for displaying useful forms in front-end only using shortcodes. Login, Registration, Profile Editor and Lost Password forms.
- Contact form 7 – Contact Form 7 can manage multiple contact forms. Plus you can customize the form and the mail contents flexibly with simple markup. The form supports Ajax-powered submitting, CAPTCHA, Akismet spam filtering and so on.
- Duplicate Post – Clone posts and pages
- Duplicator WordPress Migration Plugin – WordPress migration and backups are much easier with Duplicator! Clone, backup, move and transfer an entire site from one location to another.
- Events manager – Fully featured event registration management including recurring events, locations management, calendar, Google map integration, booking management.
- Flamingo – A message storage plugin for Contact Form 7.
- Jetpack – Plugin for stats, related posts, search engine optimization, social sharing, protection, backups, speed, and email list management.
- Limit login attempt – Limit number of login attempts and block IP temporarily. It is protecting from brute force attacks.
- NextGEN Gallery – The most popular gallery plugin for WordPress.
- Ninja Forms – Powerful forms builder. Drag and drop fields in an intuitive UI to create different forms. You can create contact forms, email subscription forms, order forms, payment forms, send emails and more!
- Page Builder by SiteOrigin – Build responsive page layouts using this simple drag and drop page builder.
- PirateForms – A simple and effective WordPress contact form & SMTP plugin. Compatible with best themes out there.
- Polylang – Multilanguage support plugin.
- Show Current Template – Shows the current template file name, the current theme name and included template files’ name in the tool bar.
- Simple Lightbox – A very simple and customizable lightbox that is easy to add to your WordPress website.
- SiteOrigin CSS – An advanced CSS editor.
- SuperSocializer – Provides all social features like login, commenting, sharing and more.
- TablePress – Embed beautiful and feature-rich tables into your posts and pages, without having to write code.
- Tiled Gallery carousel without Jetpack – Tiled Gallery Carousel allows you to display image galleries in mosaic styles without Jetpack.
- VaultPress – VaultPress is a subscription service offering real-time backup, automated security scanning, and support from WordPress experts.
- WooCommerce – WooCommerce is a powerful, extendable eCommerce plugin that helps you sell anything.
- Wordfence Security – Secure your website with the most comprehensive WordPress security plugin. Firewall, malware scan, blocking, live traffic, login security & more.
- WP Google Maps – Create a custom Google map with high quality markers containing categories, descriptions, images and links.
- WP Maintenance mode – Puts your site into maintenance mode. Adds a splash page to your site that lets visitors know your site is down for maintenance. It’s perfect for a coming soon page.
- Yoast SEO – All-in-one SEP solution for WordPress including on-page content analysis, XML sitemaps etc.