How do I publish a blog post to my WordPress site automatically?
You publish to a self-hosted WordPress site automatically by letting a tool you trust create the post for you through WordPress's REST API, which every self-hosted WordPress site has built in. The tool signs in with an application password, a separate password you create for outside apps under Users, then Profile, in your WordPress dashboard. It sends WordPress the post's title, body, and other fields, and WordPress creates the post exactly as if someone had typed it into the editor. You can revoke the password at any time without changing your own login.
There are a few common ways to use that today. WordPress's own scheduler lets you set a future publish date on a post you've already pasted in, which automates the moment of publishing but not the copying. Exporters such as Wordable send a Google Doc into WordPress with its headings and images intact. Automation tools such as Zapier and Make can create a WordPress post whenever a row is added to a spreadsheet or a document lands in a folder.
All of these move text well, but none of them decides what the post needs around that text. A blog post in WordPress is more than its body. It has a title that also becomes its web address, an excerpt that shows in your blog listing, categories and tags that place it on your site, an author whose byline appears on it, and a featured image that appears in your blog grid and when the post is shared. An automation fills those in only if someone mapped every field ahead of time, and it can't tell whether the category is right, whether the image has alt text, or whether a teammate published the same topic last month.
That's the real work in this job. A good result is a post that goes live complete: every field filled in on purpose, links to your related posts in the body, a featured image with alt text, the right byline, and a quick check of the live page so a broken image or a missing excerpt doesn't sit there unnoticed.
Kite does that work for you. It takes an approved post, or writes one, fills in every field from what your site already uses, and publishes it to your WordPress blog after you approve it.
How to get started
Start by telling Kite in Slack which post you want published. You can hand it a post you've already approved:
"Publish the attached post on our blog under the Guides category, with Maria as the author."
Or you can ask Kite to write and publish one:
"Write a post on how to choose a payroll provider for a 20-person company and publish it on our blog once I've seen it."
Kite is an AI marketer in your Slack. It researches your business, builds a growth strategy, and ships the work that brings you new customers. By the time you ask, it already knows your products, your customers, and your brand voice from that research, so a post it writes sounds like the rest of your blog, and a post you hand it gets placed the way your team would place it. If you share a file in the thread, Kite reads it from there.
You'll need to connect your self-hosted WordPress site with three things: its address, a WordPress username, and an application password for that user. Connect a user with the Editor or Administrator role so Kite can publish under any author's name. An Author account can publish only under its own name. Some security plugins and hosts turn application passwords off, so if the connection fails, check that setting first.
Publishing to your live site is the kind of step Kite asks about first. It shows you the finished post in Slack, and it publishes when you approve. If you want Kite to publish without asking, you can give it that autonomy.
How Kite publishes a blog post on your WordPress site
Is this post already on your site?
Kite searches your existing WordPress posts before it creates anything, so your blog doesn't end up with two posts on the same topic. It searches by the post's main keywords and reads what comes back, including drafts and posts waiting for review, not only published ones.
When it finds a close match, Kite tells you before going further. If a teammate already has a draft in progress, you can decide whose version goes out. If an older published post covers the same question, Kite can suggest updating that post instead, which keeps its address and the links already pointing to it.
Getting the body ready for WordPress
Kite formats the body the way WordPress displays it, with headings, paragraphs, lists, links, and images in place, so the post reads the same on your site as it did when you approved it. If you handed Kite a finished post, it keeps your wording and only adjusts the formatting.
Kite also adds links to your related posts. It searches your blog for posts on neighboring topics and links to the ones a reader of this post would want next. Those links help readers keep going, and they help search engines understand how your posts fit together.
Which title, excerpt, categories, and tags does the post get?
Kite fills in each field from what your site already uses rather than inventing a new structure. Before it writes the post, it reads your site's categories, tags, authors, and the statuses your site allows. Then it sets the following:
- Title. The approved headline. WordPress builds the post's web address from the title when the post is created, so Kite keeps the title clear and specific enough to make a clean address.
- Excerpt. A one- or two-sentence summary that shows in your blog listing and in many themes' previews. Kite writes it to tell a reader what they'll learn, rather than repeating the first line of the post.
- Categories. The existing categories your readers already browse. If the post doesn't fit any of them, Kite tells you and suggests a new category for you to add in WordPress.
- Tags. Tags your site already uses that describe the post's topics.
- Author. The team member whose byline should appear, matched to their WordPress user.
- Comments. Open or closed, matching how the rest of your blog is set up.
When your site makes your SEO plugin's fields available to outside apps, Kite also sets the search title and meta description. Otherwise it gives you both in Slack to paste into the plugin's box.
Adding the featured image
Kite uploads the post's featured image to your WordPress media library and attaches it to the post, so the post appears in your blog grid with its picture. Each image goes in with a title, a description, and alt text that describes what the image shows, which helps readers who use screen readers and gives search engines something to index.
The image can be one you shared in the thread, one from your own site, or one Kite creates in your brand's colors and style.
Publishing or saving as a draft
Kite sets the post's status on purpose every time, either published or saved as a draft, depending on what you asked for. When you approve the post in Slack, Kite creates it in WordPress as published and it goes live on your blog. If your editor wants the last read inside WordPress, ask Kite to save it as a draft, and it waits in your dashboard until someone clicks Publish.
If you want posts to go out on a regular rhythm, such as every Tuesday morning, ask Kite to run the job on that schedule. Each week it publishes the next approved post and reports back in the same Slack thread.
What Kite checks and reports back
Once the post is live, Kite opens it on your site to confirm that the title, body, featured image, and byline all display the way they should. Then it posts the live link in the Slack thread where you asked, along with the categories, tags, and author it set and the excerpt it wrote.
If anything needs a change after publishing, tell Kite in the same thread. It can update the title, body, excerpt, categories, author, featured image, comment setting, or status of the live post, including moving it back to draft to take it off your site. With Google Search Console or your analytics connected, Kite can also come back in a few weeks and tell you how the post is doing in search.
What the finished work contains
When Kite finishes, your WordPress blog has a complete, live post, and your Slack thread has a record of everything Kite set on it.
The live post
The approved body, formatted with headings, lists, and links to your related posts, under a clear title.
Every field filled in
An excerpt for your blog listing, categories and tags from your existing set, the right author, and a comment setting that matches the rest of your blog.
The featured image
Uploaded to your media library with a title, description, and alt text, and attached to the post.
SEO fields
The search title and meta description, set in your SEO plugin when your site allows it, or written out for you to paste in.
The Slack summary
The live link, what Kite set on each field, and anything it needs from you, such as a new category to add.
Common questions
Can Kite set the post's URL slug?
Not directly. WordPress creates the slug from the post's title when the post is created, and the connection Kite uses doesn't change slugs. If you want a shorter address, you can edit the slug in WordPress with Quick Edit on the Posts screen, preferably before the post has been shared, since changing a live post's address breaks links to it unless you add a redirect.
Can Kite publish WordPress pages as well as posts?
Kite's WordPress connection publishes and edits blog posts. Pages such as your homepage or a services page are edited in WordPress itself. When a page needs new copy, Kite writes it and tells you where it goes, and if you want Kite to manage pages too, it can build and host a marketing site or work on a site whose code lives in GitHub.
Does this work with WordPress.com?
This page covers WordPress that you or your hosting company run on your own domain. Sites on WordPress.com connect to Kite separately, and that connection can publish new posts and upload images but can't edit posts once they're published.
Do I need a plugin to connect Kite to WordPress?
No. Application passwords and the REST API have been part of WordPress itself since version 5.6, so there's nothing to install. Your site does need to run over HTTPS, which WordPress requires before it will offer application passwords.