WordPress Theme: Just Write

Just Write - Free WordPress Theme Just Write is a WordPress theme that I released back in March. This simple theme is geared towards writers and bloggers who want the focus of their site to be on their written content. It includes a primary menu, a custom site logo, and a sidebar that can be toggled.

I just released an update that introduces custom color options and minor bug fixes. The update still needs to be approved before it appears in the directory. But in the meantime, the latest version can be found on GitHub:

A demo can be found here. And the previous version can be found in the official directory here:

Just Write
by ryancowles

Just Write is a simple theme, geared towards writers and bloggers who want the focus of their site to be on their written content. It includes a primary menu, and a sidebar that can be toggled.


  • Current version: 1.1
  • Rating: 90(2 ratings)
  • Downloaded 0 times

My Workflow Tips and Tricks

Alfred Workflow: Boot up

I recently returned from a team meetup in Hawaii (you can read about the fun stuff here). The meetup had a strong focus on discussing and improving our efficiency as a team. Part of that involved sharing our individual workflows so we could learn from each other. While some of the tips that I shared are specific to the work that we do as a team, other parts might be helpful in general.


I rely heavily on an app called Alfred. If you haven’t used it before, I recommend giving it a look. On the surface, it looks like a simple Spotlight replacement. But when you get under the hood and start using Alfred’s features you’ll see that it blows Spotlight out of the water.

Shameless self promotion: I was recently interviewed on the Alfred Blog, which you can check out here.

Starting my day

I have a custom Alfred Workflow that I use to get my day started. I hit Opt + Space, and enter the work keyword into the prompt. This opens up all of the apps that I use for work, as well as the tabs that I use in Chrome to start my day.

For reference, the apps and sites that I open are:

I have a few variations for this one. For example, if I’m doing a theme review, I have an Alfred workflow for that. It will fire up my theme review Vagrant, open Sublime Text, and open up the front-end and back-end of the site in Chrome.


Color coded Gmail Labels

Once I’m booted up, I head over to the Gmail tab. At Automattic, we use P2s extensively for internal communication (well, actually, o2). I subscribe to the most important of these by email. I use Gmail filters and labels to keep my inbox organized. The filters break things down by category (i.e., Jetpack, Support Forums, GitHub) and then I use labels to color code them. That way I can get a good sense of what requires my attention with just a quick glance at my inbox.

I also have my inbox set to show unread messages at the top. This allows me to mark the non-important messages as read, and they will disappear from the top. If one of the emails requires a quick action, I try to do it right away. If I don’t need to complete the action right away, I use a hotkey to quickly enter it into Todoist.


Todoist Workflow

When I enter a task into Todoist using the quick add, I just send it to my inbox. Then, after getting caught up on my emails, I open up the Todoist app itself and organize my tasks using Projects and Labels. I keep projects top level (Personal, Work, Read, Write, etc.). I then use labels to break things down into specifics (Forums, P2, GitHub, etc).


After email, I head over to Slack, which we use for synchronous communication. I do not read scroll back in Slack when I logon for the day. I also mute most of the channels that I am in. The exceptions are my team channels, and other important company-wide channels. This allows me to avoid unnecessary distractions, but still receive notifications when someone mentions a keyword in a muted channel.

Alfred Workflows

Now that I’m all caught up on communication, I’m ready to start my day. Depending upon what I’m working on this work can vary quite a bit. But there are a few Alfred workflows that I use on a regular basis:

  • Alfred Gist: Easily create a Gist from the contents of your clipboard. This is handy when I’m writing a quick code snippet in Sublime Text for a user, and want to share it with them.
  • Caffeinate Control: This allows you to enable/disable your Mac’s sleep function. This comes in handy when I am regen’ing thumbs, or doing something that requires my monitor to remain awake.
  • WordPress developer reference: Search the .org documentation for functions, hooks, classes, etc. It also autocompletes, which is nice for when I can’t remember the exact name of a hook or function.

There are a handful of commands that I run on a regular basis to troubleshoot Jetpack connection issues. Instead of manually typing these commands in each time, I have workflows that allow me to automate the process.

For example, I often try to cURL a site’s xmlrpc.php file to see if it is accessible. Instead of typing the command each time, I just copy the URL to my clipboard, hit Opt + Space to bring up Alfred, and enter the curl keyword and Ctrl + V to paste the URL. Doing so will run the following command in Terminal (where {query} is the URL):

Command Line

iTerm2 and Oh my ZSH

Speaking of the command line, I use iTerm2 as a replacement for the native Terminal. And I use zsh instead of bash, with oh my zsh to manage my zsh config. (h/t @jeherve). Both are customizable and provide many helpful shortcuts right out of the box.


When I complete a task, I try to make a note of it into iDoneThis. I have an Alfred workflow that allows me to type idid followed by a description. I don’t use this as much as I should, but it is helpful to reflect upon what I’ve accomplished in a day/week.


Hemingway Editor App

When I am writing a post or replying to a non-native English speaking user I often run it through Hemingway. The editor looks for wordy sentences, adverbs, passive voice, and complicated words. It isn’t bullet proof, but it does catch quite a few common errors.

Screenshots / Sharing

I use Cloudup to share files. It lives in my menubar, and I can easily share files by dragging them onto the icon. When the upload completes, Cloudup copies the URL to my clipboard and it is ready to send. If I need to annotate screenshots before sending, I use Glui. Using Glui I can quickly mark up diagrams, add arrows, text, and more before sharing the image on Cloudup.


I’m constantly iterating on my workflow, so none of these techniques are written in stone. Do you have any workflow tips or tricks? If so, I’d love to hear!

WordPress Functionality Plugins

WordPress Functionality Plugin Presentation

I recently gave a talk at the Pasadena WordPress Meet Up on Functionality Plugins. The presentation was short – more of an intro than anything else – but I hope someone found it helpful. For more information, you can check out the resources slide at the end of the presentation.

If you have any questions, or want to share some of your thoughts, leave a comment below. Now, enough rambling, here are the slides:


Why I Use and Recommend WP Engine for WordPress Hosting

WP Engine Homepage

The team over at WP Engine recently asked me if I’d be interested in doing a Q&A for their blog. I was more than happy to do so, and it got me thinking about their company and what they do. I’ve worked with a lot of different web hosts over the years and all of them have their pro’s and cons – whether it be pricing, support, server configurations, or just the overall experience.

I’ve had good experiences and bad, but WP Engine stands out as one of the best hosting providers that I’ve worked with. While I’ve had good experiences with other hosts, it’s rare to find a host that provides great service and holds each customer relationship to such a high regard. Here are just a few reasons why I host my WordPress sites with them, and why I recommend them when people ask.

Speed and reliability

The technology that WP Engine uses is designed specifically for WordPress, and their server stacks can handle any amount of traffic. I’ve seen some large traffic spikes in my analytics, but would have never known based upon the performance – which was still snappy and quick. They use top quality hardware, and spread web requests and database queries across multiple servers.

On top of that, you don’t have to worry about configuring any caching plugins. WP Engine uses technology that was created by their team called “EverCache”. They claim that this technology outperforms just about any caching plugin (including WP Super Cache and W3 Total Cache) and based upon the performance that I have seen, I believe it. And it’s all configured automatically – both server side and client side. You’ll still have to minify your scripts and stylesheets, but that’s a piece of cake.

If you’re looking for an example of these fast loading times, just check out the page load times on my site.

They offer a CDN

I haven’t seen any other host that offers a solid CDN right out of the box. WP Engine does. They work with NetDNA to provide a fast, reliable CDN. You don’t even have to get your hands dirty setting it up, as it is all configured automatically. This point could be bundled with the one above, because it also contributes to better speed and reliability, but I figured it was worth its own section.

Support is knowledgeable, helpful, and friendly

To me, support and communication is just as important as the technology. And again, WP Engine does a great job with it. Although they are not available 24/7 (except for emergencies), I have never had an issue waiting for someone to help me out.

Not only are they prompt, but they are also extremely knowledgeable. Their entire support staff is made up of WordPress experts. They’ve helped me tackle some issues and offered suggestions for problems that were caused on my end – not a lot of hosts will go above and beyond like that.

And to top it all off, they have always been patient and friendly whether it be via their Support Dashboard, Twitter, email or phone. I guess you could say I like those guys and gals.

One Click Staging Site

This is one of my favorites. WP Engine offers the ability to create an exact copy of your live site, at any time, with one click of a button inside your WordPress Dashboard. You can push your changes to this staging site, test things, break things… All without affecting your production site. When you are running a public facing site, this feature is priceless. You don’t have to be nervous updating themes or plugins, or making changes to your site. Try them on your staging site first, make sure they work, and then push to your live site. And you can reset your staging site at any time with one click. It’s awesome.

Git Integration

I use Git for version control, so I was happy when WP Engine fully integrated Git-Push-To-Deploy into their hosting platform. You can push changes to your staging site or your production site… or both. All you have to do is open a ticket with your SSH public key and which install you’d like to associate them with and then you can start utilizing all the Git goodness. Pretty rad.

Peace of mind

WP Engine secures every site they host. They constantly scan their servers and make sure no malware or security holes are present. They also fix your site if it’s hacked – for free. Backups and restore points are automatically created daily, and you can manually create one at any time with a couple of clicks. And this is included with any plan.

It saves time

With all of these features (and more) I find myself spending a lot less time with server issues and maintenance. WP Engine will even update your sites when a newer version of WordPress is available. For example, when 3.5 was released, I received word from WP Engine that they would be testing the latest version of WordPress, and then pushing the updates to all installs. They notified me beforehand so I was able to test 3.5 on my staging sites. After making sure everything was in working order, I easily updated to 3.5 on my production sites. It was the most seamless update I’ve ever completed. And for minor releases (3.5 to 3.5.1 for example) WP Engine handled it automatically without a hitch.

I don’t have to worry about taking manual backups, or regular server maintenance. They take care of it. Pretty rad.

They are active in the WordPress community

Another thing that I like is the fact that I often see WP Engine active in the WordPress community. Whether it be on Twitter, at WordCamps, or just exchanging ideas with other WordPress enthusiasts. Hell, I don’t even think Austin sleeps.

Affiliate Program

They also offer a very generous affiliate program. If you sign up for the WP Engine affiliate program you’ll receive a minimum of $150 per referral. It doesn’t matter which plan, the payout is at least $150+. I would recommend them either way, but it’s nice that they offer the affiliate program, too.

Note: The links to WP Engine in this article are affiliate links. It will cost you nothing extra, but I will make a commission if you buy hosting through them. Affiliate links or not, I stand by everything written here and would feel the same either way.

WP Engine – Conclusion

Suffice to say, I like the team and the service over at WP Engine. They offer solid WordPress hosting, awesome support, and they are easy to work with. Go check them out. And if you’re looking for hosting now, they’re offering two months free when you prepay for a year. They don’t lock you in to any contract, and they also offer a 60-day money back guarantee. So if you’re unhappy, you can get a full refund.

Have you worked with them before? Or do you have a question? Whether positive or negative, let me know in the comments below.

Set WordPress Featured Image as Facebook Thumbnail

If you have a WordPress blog, odds are that you are sharing your posts on Facebook and other social media websites. Some of these sites allow you to include a thumbnail image and description when you or your visitors share posts. For example, when you paste in a URL on Facebook or LinkedIn they will pull an image (if available) and description from the page. At first glance, it may appear that you don’t have much control over this.

However, both Facebook and LinkedIn utilize the Open Graph Meta tags (For more info about the Open Graph API in general, check out David Walsh’s Facebook Open Graph META Tags article.). If you take advantage of this, you can control which image and description is pulled by default.

How can I use Open Graph Meta Tags with WordPress?

It is a pretty straightforward process to add the required meta tags. First, we need to allow for Facebook markup in our opening HTML tags. In this example we are going to add a few filters in our functions.php  file to accomplish this (Note: you could also add the appropriate code to your header.php):

Now we can add the Open Graph meta tags just like regular meta tags and use WordPress’ Template Tags to fill them in. Here’s an example:

Most of the tags are pretty self explanatory, but feel free to ask questions if anything is unclear.  If you wanted to avoid touching your theme files, I’ve packaged this into a simple plugin that you can use as a starting point.  You can see the full code for the plugin here (the zip also contains a screenshot and a readme):

And you can download it from the WordPress Plugin Repo: Facebook Featured Image and Open Graph Meta Tags

Things to consider:

A lot of plugins and themes already include some or all of this functionality. For example, WordPress SEO by Yoast takes care of this for you. A lot of themes will also do this by default. To avoid redundancy you should check to see if the Open Graph tags already exist on your site. All code contained in this post is to be used on an “As-is” basis, and may contain errors. If you notice any, let me know!


Add a category image to a WordPress loop

I recently wrote an article for Search Engine People on how to set a fallback image for featured images. Shortly after writing that I ran into a situation on my own site that required a slightly different solution. Instead of grabbing the first image from the post as a fallback, I wanted to set a fallback based on category. For example, if I have a post in my WordPress category that doesn’t have a featured image set, the WordPress logo will accompany the excerpt in the loop by default. I was able to accomplish in just a few short steps. I’ll show you how to add a category image to a WordPress loop.

Category Images

First, I had to create the images I wanted to use for my categories. I saved them all as JPG‘s with the category slug as the filename (e.g., wordpress.jpg for my WordPress category and web-development.jpg for the Web Development category). I then uploaded these to a new directory called cat-images in my theme’s images folder.

Calling Category Images in a Theme

Now the images are uploaded, but we still need to call them in our loop. If you are trying to insert them in your main blog feed you will probably find the loop in loop.php, home.php, front-page.php, or index.php.

First, let’s see if our post has a featured image set for it. If it does, let’s return it and be done with it:

Then, if the post doesn’t have a post thumbnail associated, let’s grab the corresponding image we uploaded:

After that, we just have to close our if statement:

Now, let’s put it all together:


If you don’t want to use featured images in your loop, and instead just want to return the category image for all posts, you can strip out most of the code and just use the following:

Things to Watch For

If you see broken images shown in your loop, there is probably an incorrect path or filename somewhere. Make sure that the folder name in your theme’s directory matches the exact name and path as in your loop. Also, make sure the filenames of pictures are the exact category slugs (Pay attention to capitalization and file extensions).


Now, whenever you have a post with no featured image set, it will return the corresponding category image. Want an example? Just check out my main blog page. Have you done something similar, or have another way of doing this? Let me know!


WordPress Codex: has_post_thumbail
WordPress Codex: the_post_thumbnail

Set a fallback image for WordPress Post Thumbnails

I recently wrote this article for Search Engine People, and figured that others may find it useful. It explains how to set a fallback image for WordPress Post Thumbnails.


One of the countless things that I love about WordPress is how easy and efficient the process of adding new content is. All you have to do is provide the art and copy and your theme will take care of the rest. While this workflow is usually smooth, there are times the end user can miss a step or two. I’ve noticed when working on larger sites with multiple authors one of the most common things to slip through the cracks is setting a featured image. While this shouldn’t break your theme, it can create layout inconsistencies or (shudder) broken images. Lucky for us, we can easily provide a fallback, and I’ll tell you how.

WordPress Post Thumbnails

Post Thumbnails were introduced in WordPress 2.9 [Source: WordPress Codex] and have since become somewhat of a standard for theme developers. If a theme declares support for this functionality, it allows authors to set an image that will represent Posts, Pages, or Custom Post Types. How this image is utilized is completely dependent on the theme. A lot of themes will use a featured image to accompany excerpts, but that’s just one example.

Read the rest of my article over at Search Engine People.

Hello world!

WordCamp Los Angeles 2012I attended WCLA this past weekend and had a great time. It was my first WordCamp, so I wasn’t sure what to expect. I learned a lot, and met a ton of great people. I’ll definitely be going to more in the future.

The guys over at WP Engine hooked me up with a free hosting account, so I figured it was about time that I put together a brand new WordPress website for myself. While I will still [try to] maintain my photography blog over at Metacom Creative, I will probably be focusing a lot more attention on this site. You’ll find me building and breaking things and sharing what I learn in regards to WordPress and web development.