eoma

Docs › Connections

WordPress

Connect your WordPress site so EOMA can publish the pages, posts and files it writes for you, instead of handing you a file to paste.

In 10 seconds

Before you start

Steps

1 — Open Settings → Integrations

Settings is at the bottom of the left sidebar. Inside it, the Workspace group holds Integrations.

┌─ Settings ─────────────────┬──────────────────────────────────┐
│  WORKSPACE                 │  Publishing — CMS & Sites        │
│    Plan & Usage            │    WordPress      [ Connect ] ←  │
│    Brand Profile           │    GitHub         [ Connect ]    │
│  ● Integrations   ← here   │    Vercel         [ Connect ]    │
└────────────────────────────┴──────────────────────────────────┘

Press Connect on the WordPress row.

2 — Say which kind of WordPress you have

A window called Connect WordPress asks you to pick one:

If you are not sure, open your dashboard and look at the address. wp-admin on your own domain means self-hosted.

3a — WordPress.com: log in

Press Continue to WordPress.com. You approve the connection on their site and land back in EOMA with the row connected. Nothing to copy, and no plugin.

3b — Self-hosted: create an Application Password

An Application Password is a separate password WordPress generates for one program to use. It is not your login password, and revoking it does not affect your login.

  1. Log in at yoursite.com/wp-admin
  2. Go to Users → Profile
  3. Scroll to Application Passwords, type the name EOMA, press Add Application Password
  4. Copy the 24-character password it shows, spaces and all

WordPress shows that password once. If you close the screen before copying it, generate a new one — there is no way to read the old one back.

3c — Self-hosted: install the EOMA plugin

Still in the EOMA window, under 2. Install the EOMA plugin:

  1. Press Download the plugin (.zip)
  2. In WordPress admin go to Plugins → Add Plugin → Upload Plugin, choose the .zip you downloaded — do not unzip it — and press Install Now
  3. When the upload finishes press Activate Plugin
┌─ WordPress admin ────────────────────────────────────┐
│  Plugins  ▸  Add Plugin      ← the submenu           │
│              [ Upload Plugin ]  ← then this button   │
└──────────────────────────────────────────────────────┘

Two things go wrong here often enough to name:

If an older version is already on the site, choose Replace current with uploaded rather than deleting the old one first. Deleting the plugin from WordPress removes two things with it: the history EOMA uses to undo its own changes, and the stored content of your /llms.txt. Deactivating the plugin keeps both, so a deactivate-and-reactivate is safe when you are debugging.

3d — Self-hosted: enter the two things you collected

Fill Site URL, WordPress username and Application Password, then press Connect. EOMA checks the credentials against your site before saving them.

If the plugin is on the site, the window closes and the row turns connected. If it is not, the window stays open on The plugin is not installed yet — go back to step 3c, then press I've installed it, check again.

What you'll see

"Publishing — CMS & Sites"

The group heading in Settings → Integrations, described as "Where the agent can write pages, posts, schemas and root files." WordPress is the first row in it.

The WordPress row and its "Connect" button

Icon, the name WordPress, and a Connect button on the right. If you are not the brand owner the button is replaced by Owner only.

"Connect WordPress" — the two choices

The window described in step 2. Each choice explains itself in two lines, so you can pick without knowing the word "hosting".

"1. Create an Application Password in WordPress"

Self-hosted only. The first of three numbered sections, opening with why the password is safe to give: "This is NOT your WordPress login password… You can revoke it from WordPress in one click at any time." Then the four steps from 3b.

"2. Install the EOMA plugin"

The second section, and the only one with a warning box around its explanation. It says the plugin is required whether or not you use Elementor, then gives the download link and the three install steps.

"Video for this step"

Under each of the first two sections. A short recording of that step being done in a real WordPress admin, with no sound — the instructions are written into the picture. It only appears when EOMA is set to Turkish, because the WordPress admin in the recording is Turkish; showing it to an English speaker would teach them labels their own screen does not have. The written steps are the same in both languages.

"3. Enter the two things you just collected"

The last section: Site URL, WordPress username and Application Password. A counter under the password field tells you whether what you pasted is the right length.

"The plugin is not installed yet"

The window you land on if the connection works but EOMA cannot find the plugin. It keeps the three install steps and the video, adds I've installed it, check again, and offers I'll do it later if you need to fetch an administrator. Leaving here is allowed — the site is connected either way — but publishing to it will not do what you expect until the plugin is on.

The row after it connects

The Connect button is replaced by your site address and a Disconnect button. That is the whole confirmation — there is no separate success screen.

Reading the numbers

The counter under the password field — "18/24 chars". An Application Password is exactly 24 characters, and EOMA counts what you pasted with the spaces removed. Anything under 20 turns orange and adds "Application Passwords are 24 characters. This looks too short" — which nearly always means you pasted your normal login password. At 24 it turns green and says "looks right". Fix it here rather than pressing Connect and reading an error.

The site address shown on the connected row. The address EOMA will write to. Check it is the one your visitors use. A staging address here means finished work lands on a site nobody reads.

What EOMA can send to WordPress. More than to any other destination:

What EOMA writes Lands as Needs the plugin
A blog post A post on your blog Only if the page is built with Elementor
A comparison page, a competitor-answer page, a rewrite of an existing page A page Only if the page is built with Elementor
Your llms.txt file A file at the root of your site Yes, always
FAQ or organization structured data A snippet in the page head Yes, always

"Goes live on your site right away". The line you will see later, when you approve a piece of work and choose WordPress as its destination. Take it literally: WordPress is a live destination. The moment you confirm, visitors see the page, and the action closes as done. The GitHub route is the one that gives you a review step first.

When it goes wrong

You see Why What to do
"Owner only" instead of a Connect button You are not the owner of this brand in EOMA. Ask the brand owner to connect it. It is a one-time job.
"That looks like a regular login password…" You pasted your WordPress login password. Go back to Users → Profile → Application Passwords and generate one there.
"WordPress doesn't accept email here…" You typed your email in the username field. Use the username you type when logging in, not the email address.
"Username or Application Password rejected by WordPress." One of the two is wrong. The username is case-sensitive. Re-check the username, then generate a fresh Application Password and paste the new one.
"Application Passwords are disabled on this WordPress site." The feature is switched off, usually by a security plugin. Ask whoever maintains the site to turn it back on. The message in EOMA carries the exact line they need.
"Your password is fine — your server is dropping the login header…" Your hosting strips the Authorization header before WordPress sees it. Nothing you typed is wrong. Send your host the .htaccess line the message shows. Re-generating the password will not help.
"WordPress REST API isn't reachable." A security plugin such as Wordfence is blocking /wp-json. Ask your site maintainer to allow it, then press Connect again.
"This WordPress user can't publish posts." The account is a Contributor or Author. Use an Editor or Administrator account.
"We couldn't reach that site." or "The site took too long to respond (>10s)." The address is wrong, or the site is down or very slow. Open the address in a browser. If it loads, try again in a minute.
"The plugin is not installed yet" after you installed it Almost always: uploaded but never activated. Open Plugins in WordPress. If the "EOMA Companion" row still says Activate, press it, then press I've installed it, check again.
You cannot find Add Plugin in WordPress Your WordPress account is an Editor. Only Administrators may install plugins. Ask whoever administers the site to do step 3c. The connection itself is already done.
The row is connected, work publishes, and the page does not change The site uses Elementor and the plugin is missing. Elementor stores the page body separately, so a write can succeed and stay invisible. Install the plugin (step 3c). Then re-publish the action.
Everything connects, but nothing is ever published Connecting gives EOMA somewhere to publish. It does not publish anything on its own. Approve a piece of work on Actions and pick WordPress as the destination.
Reading this as a machine? The same page in Markdown: /docs/integrations/wordpress.md

On this page