WordPress
Connect a WordPress site for AI content edits, page-builder editing, and operational support
Keva connects to WordPress in two ways, depending on how much you want it to do. Both are token-scoped and revocable from your WordPress admin.
| Connection | What it does | How to connect |
|---|---|---|
| Content updates | Read and edit your posts and pages through the WordPress REST API | A connector token from the Keva plugin, or a WordPress Application Password |
| Full connection | Everything above, plus page-builder-aware editing (Elementor, Divi, Bricks, Gutenberg, and more) and operational support — backups, updates, security, performance, SEO, ACF, WPML, and WooCommerce | A Bridge token from the Keva plugin |
One plugin issues both tokens. Install it once, then use the connector token for content updates and add the Bridge token to unlock the full connection.
Install the Keva plugin (recommended)
- Download the plugin: keva-latest.zip (GPLv2, tested on WordPress 7.0)
- In WordPress admin, go to Plugins → Add New → Upload Plugin and select the zip
- Click Install Now, then Activate Plugin — activation generates both tokens
- Open Keva → Status in the WordPress admin at any time to view or regenerate the connector token and Bridge token
Connect for content updates
- In Keva, go to Integrations → WordPress Sites → Add site
- Paste the site URL and the connector token
Connect the full connection (page builders + operational support)
- In Keva, go to Integrations → Platform Connectors → Add platform and pick WordPress
- Paste your site URL and the Bridge token from Keva → Status — that is the whole connection. Optionally add a WordPress username + Application Password to also enable WordPress-account actions (users, comments, media).
Application Passwords (no plugin)
For sites you fully own where install friction matters, you can use WordPress's built-in Application Passwords instead of the connector token. This covers content updates only.
- In Keva, go to Integrations → Platform Connectors → Add platform and pick WordPress
- In WordPress admin, go to Users → Your Profile → Application Passwords
- Generate a password named "Keva", copy it (spaces are OK), then enter your WordPress username and the password in Keva
The Application Password inherits the WordPress user's full role, so use a dedicated editor or admin account.
Optional hardening (per-site, in wp-config.php)
// Only accept connections from Keva's egress IPs (IPv4 exact or CIDR).
// Contact support@keva.support for current IPs — they're per-deployment.
define( 'KEVA_CONNECTOR_ALLOWED_IPS', [ '203.0.113.0/24' ] ); // content / connector token
define( 'KEVA_BRIDGE_ALLOWED_IPS', [ '203.0.113.0/24' ] ); // full / Bridge token
// Only enable behind a reverse proxy that strips client-set X-Forwarded-For.
define( 'KEVA_CONNECTOR_TRUST_FORWARDED_FOR', true );
define( 'KEVA_BRIDGE_TRUST_FORWARDED_FOR', true );Requirements
- WordPress 6.0+ (5.6+ for the Application Password path)
- REST API enabled (default in all modern WordPress installs)
- HTTPS in production — enforced by the plugin; the Application Password path is HTTPS-only by Keva policy
- Tested up to WordPress 7.0 with PHP 8.4
Available actions
The Users, Media, Plugins & Themes, and Comments tables below (and plain post CRUD) use WordPress's standard REST API, which requires the optional username + Application Password on the connector. Page-builder editing and the operational categories (diagnostics, backups, updates, security, performance, SEO, ACF, multilingual, WooCommerce) run on the Bridge token alone.
Posts & Pages
| Action | Description |
|---|---|
| List posts | Get all published posts |
| Get post | Single post details |
| Create post | Publish new content |
| Update post | Edit existing post |
| Delete post | Remove a post |
| List pages | Get all pages |
| Update page | Edit page content |
Users
| Action | Description |
|---|---|
| List users | Get all site users |
| Get user | User profile details |
| Create user | Add new user account |
| Update user | Edit user info |
| Reset password | Send password reset |
| Delete user | Remove user account |
Media
| Action | Description |
|---|---|
| List media | Get media library |
| Get media | File details |
| Upload media | Add new file |
| Delete media | Remove file |
Plugins & Themes
| Action | Description |
|---|---|
| List plugins | Get installed plugins |
| Activate plugin | Enable a plugin |
| Deactivate plugin | Disable a plugin |
| Update plugin | Install plugin update |
| List themes | Get installed themes |
| Activate theme | Switch active theme |
Comments
| Action | Description |
|---|---|
| List comments | Get all comments |
| Approve comment | Mark as approved |
| Spam comment | Mark as spam |
| Delete comment | Remove comment |
Use Cases
Content Request
Customer: "Can you update the pricing on our services page?"
AI:
1. Calls list_pages() to find Services
2. Calls get_page(123) for current content
3. Reports current pricing text
4. Updates if customer confirms changesUser Access
Customer: "John left the company, remove his access"
AI:
1. Calls list_users() to find John
2. Confirms user: john@company.com
3. Calls delete_user(45)
4. Reports: "User removed successfully"Plugin Issue
Customer: "Site is showing errors after plugin update"
AI:
1. Calls list_plugins() for recently updated
2. Identifies problematic plugin
3. Calls deactivate_plugin(plugin-slug)
4. Reports: "Disabled Contact Form 7"Configuration
- Site URL: Your WordPress installation URL
- Content write: Enable/disable post/page editing
- User management: Enable/disable user operations
- Plugin control: Enable/disable plugin activation
- Media upload: Allow media library access