WordPress Plugin Setup

The official FeedCentral WordPress plugin (feedcentral-connector) consumes this same API — everything documented elsewhere in this portal applies to it too. This page covers plugin-specific setup and troubleshooting.

The plugin actively syncs articles into real WordPress Posts today, including topic mapping, an hourly automatic sync, media handling, and AI-content awareness.

1. FeedCentral URL

In the plugin's Settings page, set the FeedCentral Base URL to your FeedCentral host (https://your-feedcentral-host). This is fully configurable — there is no hardcoded default.

2. API Credential

Create a Credential from the dashboard with at least feed.read and subscription.manage (add ai.usage.read/ai.images.read if you want the plugin's AI Usage/AI Images admin pages to work). Paste the secret into the Settings page's FeedCentral Credential field.

For server-managed installs, the credential can instead be set via a wp-config.php constant (NEWS_CENTRAL_CONNECTOR_CENTRAL_CREDENTIAL), which takes priority over the stored option and keeps the secret out of the database entirely.

3. Test Connection

Click Test Connection on the Settings page. This makes one GET /api/v1/me call — safe, read-only, never entitlement-charged — and reports success or a specific failure reason (invalid credential, missing scope, rate-limited, unreachable, etc.).

4. Topic selection & category mapping

On the News Selection page, subscribe to the topics you want, and map each one to one or more WordPress categories. The page shows two independent facts per topic: whether it's Subscribed and whether it's Mapped — a topic can be one without the other, and the page flags that explicitly rather than silently doing the wrong thing.

Saving writes to FeedCentral first (the authoritative subscription set); the local WordPress category mapping is saved only if that succeeds.

5. Sync behavior

The plugin syncs automatically once an hour (WordPress Cron), or on demand via the Sync Now button on the Sync page — both use the identical code path.

Each run pages through the feed using a cursor (see Pagination), materializing each item as a WordPress Post. The cursor only advances after every item in a page reaches a durable outcome — if anything fails partway through a page, that page is safely retried on the next run; nothing is duplicated or lost. A large initial backlog may take more than one run to fully catch up — this is normal, not a malfunction.

An article with no resolved WordPress category mapping is never published Uncategorized — it's skipped until you fix the mapping.

If you've edited a synced Post's title/content by hand since the last sync, the plugin detects that and preserves your edit rather than overwriting it — only categories/metadata refresh on a later sync.

6. Media

Two modes, chosen on the Settings page:

An admin's manually-set Featured Image is detected and never silently overwritten by a later sync.

Troubleshooting

The Sync page shows the last run's status, timestamps, and a plain-English summary of what went wrong, if anything — mirroring the real failure it hit:

Symptom Likely cause
"rejected the configured credential" Credential is invalid or revoked — issue a new one.
"missing the feed.read scope" (or similar) The Credential doesn't hold a scope the sync needs — see API Keys & Scopes.
"not entitled" Your Plan doesn't include this capability.
"quota reached ... retry after Ns" You've hit your entitlement quota for the current period — see Usage & Quotas.
"could not be reached" Check the FeedCentral Base URL and that your WordPress host can make outbound HTTPS requests.

A failed sync run never deletes any Post, and never advances past the page it failed on.