WordPress Tip: Specify a Primary Category using Advanced Custom Fields

acf

What WordPress custom fields should have been

I found Advanced Custom Fields (also known as ACF) about 6 months ago while working on a project for a client. They didn’t want to have to mess around with editing the Custom Fields that come native with WordPress, it just wouldn’t have worked as smoothly.

The client needed to require one image, one PDF, one year selection, and one category. The category consisted of two options, “Weekly” or “Daily”. If you’re wondering, it was a newspaper client who wanted to categorize their posts as being either a “weekly issue” or a “daily issue”. Makes sense for a newspaper!

Getting the native WordPress custom fields to play along well with files can be tricky, and probably not worth the effort, especially with a plugin like Advanced Custom Fields around.

So, enter the hero of this post, Advanced Custom Fields. I was able to set everything up with Advanced Custom Fields within about 20 minutes, and that even counts the time that I took to make various theme templates pull data from Advanced Custom Fields. The actual setup of Advanced Custom Fields took about 2 minutes.

I’ve since started using Advanced Custom Fields here at longren.io, too. Independent Publisher, the WordPress theme I’ve been using, likes to show one main category when you’re viewing a single post, even if it’s not the most relevant category. So instead of a post about WordPress having the Git category shown at the top, I can now specify which category I want to be shown. So, for a post like this, I would obviously choose WordPress as my primary category.

I’ve already added the necessary parts to my Independent Publisher child theme, and have sent a pull request to Raam Dev to get his thoughts. It’s a very easy thing to support in a theme, however, it requires that everyone using that theme use the same field name in ACF.

I named my field primary_category, since that’s exactly what it is.

Example field setup with Advanced Custom Fields

Example field setup with Advanced Custom Fields

After you’ve added your “Primary Category” custom field, you can then use the value of that field throughout your theme. I’ll have a short post later this week on exactly how you can display the primary category value in your theme. Or, if you want to know right now, you can see this pull request at GitHub.

As you can tell, Advanced Custom Fields is a beast of a plugin. I also love that Advanced Custom Fields is totally free, which is kind of amazing to me. I’ve come across many paid plugins that are nowhere near as polished and user friendly as Advanced Custom Fields.

Advanced Custom Fields doesn’t skimp on the documentation, either. Their documentation site is extremely helpful, I never once ventured away from it while getting familiar with Advanced Custom Fields for the first time.

You can download Advanced Custom Fields from the WordPress Plugin Directory, so you can also install it in just a few clicks, right from your WordPress Dashboard! Advanced Custom Fields is developed primarily by Elliot Condon, and can also be found on GitHub.

The great thing about this is that it can be applied to any theme, not just Independent Publisher. So, if you’re not using Independent Publisher, just setup Advanced Custom Fields as I described and make the necessary changes for your theme.

A follow-up post will have more details on using data from Advanced Custom Fields, no matter what theme you’re using.

How-To: Reset WordPress Database to Default Settings

wpdb-reset

Easily Reset Your WordPress Database

WordPress Database Reset is a WordPress plugin I recently came across that will at some point prove very, very useful to me.

It’s not often that I need to reset a production WordPress database to it’s default settings, but this plugin will make the task a whole lot easier. Chris Berthe, the author, describes the plugin like this:

WordPress Database Reset is a secure and easy way to reinitialize your WordPress database back to its default settings without actually having to reinstall WordPress yourself.

I can see this being crazy useful for WordPress plugin and theme developers. We frequently need a fresh database to work with, so I’ll be adopting this plugin in my WordPress plugin and theme development workflow from here on.

WordPress Database Reset requires WordPress 3.0+ and can be installed just like any other WordPress plugin. It’s in the WordPress Plugin directory, and can also be found on GitHub.

If you’re a WordPress theme or plugin developer, you should definitely check it out.

Add Open Graph Protocol Markup to Any WordPress Theme

og

Rich objects in a social graphs

When you share a link on Facebook, an image from the link is shown, usually. Sometimes, no image is displayed, as if Facebook couldn’t find a suitable image at the URL.

Why?

Adding Open Graph protocol tags to your site will ensure that Facebook knows which image to use when someone shares a page on your website. Open Graph markup is similar to schema.org markup. Both allow you to define values for certain aspects of your website, as seen by other sites like Facebook, Twitter, and many other social media sites.

How?

There’s a couple of ways we can do this. You can use a plugin, like Open Graph Protocol Framework, or you can add Open Graph markup to your WordPress theme manually.

We’ll be covering how to add Open Graph markup to your theme manually. Especially useful for theme developers who want to build Open Graph protocol support into their themes.

The markup we’ll be adding can be seen in this GitHub gist:

Most of that should be pretty self-explanatory.

The og:type property is the only tag that needs explanation, as there’s only certain values that are valid. Most of the time, you’ll probably be setting the og:type property to article or website. A list of other Open Graph protocol object types can be found at the Open Graph protocol site.

The Code

Every Open Graph property will be set on-the-fly, depending on which post or page is being viewed or shared. To add the necessary markup, we need to use the add_action WordPress function inside your theme’s functions.php file. Here’s how I’ve been handing it:

Comments are open below, feel free to ask questions or tell me how wrong I am on one point or another. :)

Remove SSH Login Message After DigitalOcean WordPress One-Click Install

do

After creating a new Droplet using the pre-built WordPress image provided by DigitalOcean, you’re presented with a very helpful message after logging in via SSH:

To finish installing WordPress, navigate to your droplet’s IP: http://xxx.xxx.xxx.xxx
Make sure to specify hostname from DO panel to your droplet before creating it (for example: ‘blog.mydomain.com’ or ‘myblog.com’)
This will create necessary Apache configs based on hostname and Apache will respond based on hostname.
Server will also respond to its IP address, so if you finish installation from http://IP then
you will need to change hostname from WordPress Settings later (from http://IP to http://hostname)

It’s a really helpful message, especially if you’re new to DigitalOcean and even more so if you’re new to hosting stuff on your own (ie: unmanaged hosting). However, the message isn’t really helpful after the first login, maybe two logins.

There’s a great article on how to get setup after using the One-Click WordPress install, but removing the message is never mentioned.

It’s just a message of the day, the configuration for which can be found in /etc/motd. Delete line 2, and you should be good to go.

Smashing Magazine Debut With WordPress 3.9

smashing

Validation achievement unlocked!

I was invited to write an article at Smashing Magazine, detailing the new WordPress 3.9 release. Can’t really explain how excited I was when I got the email.

I’m truly thankful for the opportunity and am immensely humbled by their request.

Anyone who knows web development, design, or really anything related to the Internet at all has probably heard of Smashing Magazine.

The article was put together in a very small amount of time but was a blast to do. Daniel Pataki, the WordPress Editor at Smashing Magazine, was a pleasure to work with and has extreme patience (I asked him a LOT of questions). Thanks again for bearing with my sometimes dumb questions, Daniel.

The experience was awesome and I hope to continue writing articles for Smashing Magazine for a long time to come. I gave my editor a list of about 10-15 topics I’d like to cover, most of which have nothing to do with WordPress. Hopefully my ideas aren’t ALL crap, lol. :)

To read about WordPress 3.9 and what’s new, head over to the Smashing Magazine piece!