Administering WordPress from the Command Line through WP-CLI

command-line

Working with the command line can be intimidating if you’re used to a nice graphical user interface (GUI), but it’s worth getting familiar with. There’s a lot of mundane tasks in web development can be automated with good set of scripts and shortcuts.

It’s also often much faster and simpler to accomplish a task with the command line, and in this respect WordPress is no exception. WP-CLI makes it possible for you to get your WordPress related tasks done with the help of a set of commands.

You might have a natural question in your mind: if the WordPress admin interface is so gorgeous and user-friendly, why would someone like to use the command line interface? There are two key reasons:

  • People find keyboard faster than the mouse: Instead of using mouse, a power user always prefer to use keyboard shortcut to accomplish a task. In general, using keyboard shortcuts is 3 times faster than clicking a mouse.
  • Automation:To make several commands execute automatically, you just need to put them into a single text file. Automation saves a lot of your precious time.

So in this guide, I’m going to give you a taste of WP-CLI: a command line interface for administering WordPress sites. Continue reading

How to Disable Comments in WordPress

It’s surprisingly difficult to disable comments globally in WordPress.

Comments can be turned off for new posts in “Settings > Discussion” screen. However, all previously published posts would still retain their comment settings and need to be disabled individually under the “Discussion” metabox on the post edit screen (which can be very time consuming).

Disable Comments with One Click

The easiest way to turn off comments globally is actually with a plugin called “Disable Comments”, which is a free download from wordpress.org.

disable-comments

After enabling the plugin, you can choose to disable comments everywhere or only for specific post types. If you want the changes to be permanent, choose the “persistent mode” option before saving.

If you have chosen to make the changes permanent, the plugin can be deleted after you save the settings.

Deleting Comments

If a site was abandoned for a while or suddenly got hit by a lot of comment spam, you might want to delete all the pending comments or spam comments. For both of those scenarios, you can use a plugin called Delete Comments By Status.

Delete Comments By Status also allows you to delete “trash” comments and “approved” comments in bulk.

After enabling the plugin, go to “Settings > Delete Comments”.

Excerpt versus Content for Archives

Most theme developers have slowly moved away from using the_excerpt to display content on index, archive and search pages. I definitely have.

Let’s go over quickly how the_excerpt works:

  1. If an excerpt is explicitly defined, it will be displayed (including HTML).
  2. If an excerpt isn’t defined, the post content will be used, but stripped of HTML and truncated to 55 words by default. An indication that is has been truncated also displays “[…]”.

If a post consists entirely of a YouTube embed, a gallery, a single image, or a Tweet embed, “the_excerpt” will strip all that out- and thus nothing will be displayed. This makes for a very weird looking archive page if the_except is used.

The alternative is to use the_content. This allows the full content to show. But the content can also be truncated on archives by using more tag.

This is what I’ve been using in most of my new themes as it is the most flexible. Continue reading

Migrating to Digital Ocean

I’ve had a number of tiny WordPress sites on shared hosting (BlueHost) for over a decade. It’s been pretty great. Shared hosting has a lot of benefits: it’s cheap, it’s relatively easy to manage, e-mail is included, and there’s basic support.

The drawback is that servers aren’t generally optimized for WordPress performance, and once a site begins to scale in traffic you need to move it to a managed host or a VPS.

droplet-screen

I’ve been wanting to try DigitalOcean (one of the many cloud providers) because my hosting bills have been growing. I still have my basic shared hosting with BlueHost, but I also have large sites on WP Engine, and a VPS with WiredTree. They’ve all been great and have their own benefits, but the idea of consolidating into one provider and reducing my hosting bill significantly is a huge draw. Continue reading

How to Install a Purchased Theme

When you purchase a WordPress theme you’ll generally get a download link for the zip file. To upload this theme to your site involves a couple simple steps.

  1. Log into your WordPress site, and go to “Appearances > Themes” menu item
  2. Click the “Add New” button at the top of the screen
  3. Click the “Upload Theme” button at the top of the screen
  4. Now choose the .zip file that you have of the theme click “Install Now”

Add New

add-new

Upload Theme

upload-theme

Overwriting a Theme

If you are uploading a newer version of an existing theme, you will likely get this message:

“Destination folder already exists. Theme install failed.”

In that case, you will need to temporarily switch themes (perhaps to the default). Find the theme you want to replace, click “Theme Details” and then click “Delete”. Now you can upload the newer version.

Additional Notes

  • If you use WordPress.com, you cannot upload your own themes.
  • If your zip file contains multiple themes, you’ll need to unzip it, and then re-zip each theme individually.
  • Purchase themes only from trusted sources- otherwise you run the risk of getting a hacked version (no fun).

Social Menu Links

I (like most everyone) have number of social profiles spread across the web. Facebook, Twitter, Instagram, GitHub, etc. I tend to think of my website as my “home” on the web- it’s the only place I have complete control over the content, design and functionality. But I like to link to these other sites so folks can find me and engage there. For most brands and companies this is an essential requirement for their website.

icon-examples

There’s a number of ways for users to add social links. The simplest is to use the default WordPress menus and have text links. These can be added in a menu area or a widget. There’s also a few plugins that have purpose built widgets or absolute positioned icons that can work with most any theme.

But in most cases icon links in the menu are the best option for linking. Icons don’t take up much space and they’re immediately identifiable.

If a theme doesn’t support social icons by default, there are a couple plugins that allow you to use icon sets by adding classes to menu. Font Awesome 4 Menus is one. But since this is such an essential feature for most sites, I think it’s great when the theme itself handles it. This ensures that the icons used also match the rest of the theme design. Continue reading