✍️ WordPress

Updated at 2016-01-08 00:28

WordPress is the leading platform for blogs and personal websites. It's especially good for fulfilling medium and small freelancing projects.

Always use MySQL backend. Don't try using anything fancy like PostgreSQL, you will just regret that later.

Keep your WordPress updated. You need to update the WordPress after each release or you might become vulnerable to hackers.

If your changes are not showing, it's most likely because of caching. Refresh or temporarily disable your caching plugin.

Hiding elements with CSS and JS is not a big sin when using WP. Just do it, it's fine.

Never edit the core WordPress files. The most important feature is WordPress is the hooks API. Hooks are called on a specific time by the WordPress.

  • Action hooks: used to call external actions.
  • Filter hooks: used to manipulate output data.
add_filter      // Hook a function or method to a specific filter action.
apply_filters   // Call the functions added to a filter hook.

add_action      // Hooks a function on to a specific action.
do_action       // Execute functions hooked on a specific action hook.
add_filter('wpmfc_calendar_taxonomy_args', 'custom_taxonomy_dropdown', 10, 2);


function custom_taxonomy_dropdown($taxonomy_args, $taxonomy) {
    if ( ‘Event Tags‘ === $taxonomy->labels->name ) {
        $taxonomy_args['show_option_all'] = ‘All Locations‘;
    } elseif ( ‘Event Categories‘ === $taxonomy->labels->name ) {
        $taxonomy_args['show_option_all'] = ‘All Events‘;
    return $taxonomy_args;

Good to know stuff:

wp_localize_script() // Localizes a script.
get_template_part()  // Load a template part into a template.
wp_list_pluck()      // Pluck a certain field out of each object in a list.
wp_list_filter()     // Filters a list of objects based on arguments.

Notable WordPress hosting services:

  • DreamHost: $25 / month, unlimited transfer, more modern.
  • inmotion hosting: $5 / month, unlimited transfer, but you have to take annual plan.
  • Woima: 20€ / month, unlimited transfer, Finnish.
  • nebula: 20€ / month, unlimited transfer, Finnish.
  • Of course you can install it on your own on top of AWS or DigitalOcean, but then you need to maintain it. I'm very good in DevOps but I'd still take these services over hosting it myself. Avoid hosting on Heroku, it requires too much customization.

Use Amazon S3 to serve large files. You must host big images and additional files somewhere away from WordPress to keep it scalable. Add CloudFront to increase download speeds.


Plugins are the most important part of WordPress ecosystem. Need a feature for your website? There most likely is a plugin for that!

If your JavaScript like tabs or sliders stop working, disable all plugins. Enable them back on 1 by 1 until you find which plugin is causing the issue.


Debugging theme example content. Themes sometimes have example content and config in sample.xml. If you get errors on sample.xml upload, check these things.

  • Theme is not active.
  • The theme doesn't include required custom post types and taxonomies.
  • Checkbox "download and import file attachments" wasn't checked on import.
  • Cannot access the references images on the server.
  • Create a new page using "Home" or "Homepage" template.
  • Some themes require specific reading settings, read the theme docs. Sometimes they need to be static, sometimes they need Front Page Displays to be Your latest posts.

Some themes disable permalinks. If you start getting 404s, check Settings > Permalinks.

Notable WordPress themes, templates and sites:


Use Yoast SEO and its extensions:

Decide if you want to refer the site with or without www..

Settings > General > WordPress Address (URL)

Google Webmaster Tools > Site Settings > Preferred Domain

Enable HTTPS on your website. NameCheap is a decent provider, the cheapest are $9 a year.

Place share buttons on pages that might be shared. Search engines take into account the share count.

SEO > Social Media Facebook, Twitter, Google+ (must) LinkedIn, Pinterest (optional)

Page speed affects your search rankings. Disable all heavy plugins, use S3 to deliver big files and setup caching.

Use human-readable URL addresses.

Settings > Permalinks

# bad # good

Enable sitemap and use Google Webmaster Tools to read it.

SEO > XML Sitemap

Enable Google Authorship for content. Each author needs a Google+ account for this.

Check that your titles are human-readable.

SEO > Titles & Metas

Enable Yoast SEO breadcrumbs.

SEO > Internal Links [x] Enable breadcrumbs

Use human-readable names in image file names. Provide alt texts to the images as search engines cannot see what is in the pictures.

# bad nR6yjGsU.jpg

# good rolex-watch.jpg

Configure and use WordPress SEO content check before publishing content.

Estimating your project price. Estimate what it'll take, double it, and multiple by the chart below. Freelancer prices are usually between $3,000 and $15,000. Agency prices are between $8,000 and $40,000. A $3,000 site is around 10 views, customized design, sharing plugins, installed, mobile, contact form, newsletter signup and 2h training for the workers. Just setup usually takes 5h - 40h and hosting is around $300 / year.

Beginner freelancer:                    $25-$40 per hour
Intermediate freelancer:                $40-75 per hour
Good, experienced freelancer:           $75 – $125 per hour
Excellent, in demand freelancer:        $125 – $175 per hour
Specialist, best in industry:           $175 – $400 per hour
Small market general agency:            $50 – $75 per hour
Medium market general agency:           $75 – $115 per hour
Medium market reputable agency:         $115 – $150 per hour
Medium market high end agency:          $150 – $175 per hour
Medium market best in industry agency:  $175 – $225 per hour
Large market reputable agency:          $150 – $175 per hour
Large market high end agency:           $175 – $250 per hour
Large market best in industry agency:   $200 – $275 per hour