For a while now, @ kipkniskern (my LiveSide mate) has been asking whether it was possible to be able to set the featured image of a post for WordPress. This would save everyone the job of publishing the post, then having to log into the site and manually set the featured image.
This was a seemingly simple request, but finding out how to do it was a nightmare. I eventually found that to set a post’s featured image, you needed to set a Custom Field for the post of “_thumbnail_id” and give the image’s attachment id as a reference. Simple, right? Wrong!
With the help of Brandon Turner’s excellent Custom Field plugin, I was able to test that this did in fact work and was what I needed to set from my own plugin. So I set about getting it all set up for the plugin. What I eventually discovered was that WordPress is a real pain in the ass. No, really! When you upload an image, all it returns is the image url, and doesn’t include the attachment id. To make matters worse, that custom field only accepts the image id, not the url. This was raised to WP some months ago, but as yet, nothing has been done about it.
Not to be deterred, I created a WordPress plugin that would do exactly the same as the normal image upload function, but returned the id as well. Unfortunately, in doing so, it means that this feature (featured image), which is accessible to both self hosted and wordpress.com users, can only be set in Live Writer for self hosted users. I hope I’ll be able to rectify this in the future.
So, onto the plugin itself. First of all, you need to install my WP plugin, which can be downloaded from http://bit.ly/ScottMediaObject. Install this through your WP dashboard, there are no settings.
Once that has been installed, download the Live Writer plugin from http://bit.ly/FeaturedImagePlugin and install it.
The only real interface for this plugin is the options window:
Now, this plugin uses a new technique for allowing blog specific options (a blog post on how to do this will come soon). You will be presented with all configured WordPress blogs in the drop down, selecting one will give you a list of all the categories for this particular blog. The reason for this is you might only want to set the featured image for certain types of blog post; for example, if you only wanted to do it for posts with the category of ‘Featured.’ If no categories are set, then it will ask you for an image on every post.
The other option you can see is to use the post’s ID as the image name, this is on by default.
When you then go to publish your post, on first run, you’ll be prompted as to whether you would like Live Writer to run the plugin:
If it is your first time running the plugin, or you choose not to save it, you will then be prompted for your blog’s password. Note: You will not be asked for the username, the plugin has already got that from your configured blog in Live Writer. You can choose to save this password (securely) in the plugin’s options. In the main plugin options, if you’ve chosen to save your password, there is an option to unsave it.
Once your password is entered, choose your featured image, and let the plugin do its thing.
I should point out, this plugin uses a modified version of Orbifold’s WordPress.net wrapper. I changed a few things to get the wrapper to talk to my WordPress plugin.
So there we go. Any feedback you have should be directed to me on twitter or in the comments.
WordPress plugin: http://bit.ly/ScottMediaObject
Live Writer plugin: http://bit.ly/FeaturedImagePlugin