I’m a big fan of doing more with less work. (Who isn’t?) And recently, I’ve been looking for ways to get more content out to more channels without expending a bunch of manual labor. It turns out that Zapier makes this a piece of cake.
In this article, I’ll show how to use Zapier to publish content from WordPress to Medium or any other content syndication site any time you publish a new post.
Zapier: Programming Without Code
Automation is key to raising your productivity. Imagine if you could take 12 of the tedious tasks you do every day – like syndicating your content, sending emails, etc. – and replace them with a program that does these things automatically for you.
Now imagine if you could do all of that with writing zero code.
Zapier is a no-code automation system. With Zapier, you can trigger automated actions to happen in response to certain events. Events include activities such as receiving an email, publishing a blog post, or posting to social media.
I’m a programmer. I could write these automations myself. But with Zapier, I don’t have to. The tool can connect 5,000 different applications to one another. This means less time writing code and more time creating content and running my business.
Even better, Zapier supports adding a touch of code to handle complex situations. Say that I have to transform some piece of data before I post it elsewhere. I can get the job done just by adding a few lines of JavaScript or Python to my Zapier actions.
I’ve only used Zapier for a couple months. But it’s worth every penny I pay for it.
Setting up WordPress (RSS) feed syndication to Medium
One manual task I hate is syndicating my content. For every site I maintain, I push new posts (at a minimum) to Medium. Copying these posts manually to each system is a tedious time-suck.
Fortunately, I can tell Zapier to do it for me. Let’s see how.
Zapier works by creating an automation called a Zap. The Zap defines, at a minimum, a Trigger and one Action. The Trigger is the event that causes the Zap to run and the Action is what your Zap does with the data from the event.
I want to replicate my posts from WordPress to Medium. Zapier provides two ways to specify WordPress as a Trigger:
- The WordPress Trigger
- the RSS (Really Simple Syndication) feed Trigger
I use RSS because it contains more data and is more flexible. I can find the RSS feed of my WordPress site at mydomainname.com/feed
.
Creating the Trigger
To get started, I create a new Zap and add the RSS Trigger.
You can specify multiple feeds to monitor in a single Zap. For now, we’ll just monitor the one.
I then specify the location of my RSS feed.
Creating the Action
For the Action, I select the Medium integration. Medium is a first-class supported application on Zapier, which means Zapier integrates directly with Medium’s API.
Some apps expose multiple potential actions. For Medium, there’s only a single action – Create Story.
In the next step, I choose my Medium account. This requires authenticating to Medium and granting Zapier permission to post to my account.
Next comes the meat of the Action: the post. Here, I need to map Medium’s available fields to the corresponding elements of my RSS feed.
I specify the following mappings between Medium and RSS:
Title: Title field in RSS feed
Format: Hard-coded to HTML
Content: The RSS feed’s Raw Encoded field. This posts the HTML that WordPress itself renders when a user views the content on your Web site.
You don’t have to limit yourself to the RSS content here! You can also specify your own HTML to include before or after your article. For example, you can append a link back to your own Web site to encourage users to sign up for your newsletter or to drive consulting gigs.
Subtitle: RSS Description field
Tags: The Raw Category RSS field. Raw Category will include both WordPress categories and tags. You may run into a conflict here, as Medium limits the total number of tags you can use to five per post.
Canonical URL: The location you want search engines like Google to recognize as the “real home” of your content. Google advises setting a canonical URL on all syndicated content. (However, Google may also make its own decision about which URL is actually “canonical”.)
Publish status: Set to public if you want to post immediately. You can set to private if you want to edit prior to publication on Medium. This may be a good idea if you’re using certain embedded content – e.g., Twitter tweets and YouTube videos – that don’t embed well on Medium when imported from RSS.
Once you’ve set these fields, you can Test your Zap to see if it works as expected. If it does, you can publish it.
Once published, your Zap will run automatically and post any new post it detects in your site’s RSS feed to Medium!
Adding the featured image to your RSS feed
One hitch is ensuring Medium displays your featured image. For Medium, the featured image is basically the first image in your post. However, by default, WordPress doesn’t include the Featured Image in your post content.
You can fix this quickly with just a little PHP code. First, make sure you’re using a child theme so you’re not editing your main theme. Then, add this snippet of PHP to your functions.php
file:
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p> . get_the_post_thumbnail($post->ID) . '' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
Adding other syndication targets
What if you want to publish to other syndication targets? In that case, no need to create a new Zap. Youy can add a second (or third, fourth, etc.) action after the Medium publication step to cascade your post to other syndication outlets.
Adding unsupported apps
What if Zapier doesn’t support a platform you publish to? (Example: What if we wanted to automate posting to Hashnode?)
You have three options here.
One option is the complicated option of writing a completely custom Action in code using JavaScript or Python. Totally doable. However, it also puts you back in the position of writing and maintaining a codebase.
Another option is to upgrade to Premium and use the Zapier WebHooks Action. WebHooks lets you post data to any REST API available on the Internet.
Finally, your third option is to find a third-party integration. Zapier supports writing custom integrations and publishing them as private integrations to your account. This takes a little technical know-how. But if you’re familiar with using Git and developer tools like NPM, it’s straightforward. (Here’s one such integration for Hashnode if you’re interested in trying it out for yourself.)
Conclusion
It’s hard keeping your content up to date across multiple channels. Using a tool like Zapier, you can relieve yourself of some of the burden – even if you don’t know a lick of code!