- List and display posts, pages, and custom post types
- Upload and manage media library assets
- Read site settings, categories, tags, and user profiles
- Build headless CMS experiences on self-hosted WordPress
Common use cases and example apps
How to connect WordPress (self-hosted)
Workspace admins and owners can connect WordPress (self-hosted). You can create multiple WordPress connections using different sites or Application Passwords, which is useful for separating environments (for example, staging and production) or connecting multiple self-hosted sites. When the connection is created, WordPress (self-hosted) becomes available across all projects in the workspace. Anyone building in a project can ask Lovable in chat to link their project to it.Prerequisites
Before connecting WordPress (self-hosted), make sure you have:- A self-hosted WordPress site with HTTPS enabled
- WordPress 5.6 or later (Application Passwords require this version)
- Non-plain WordPress permalinks enabled for REST API routes
- A WordPress user account with the permissions your app needs
- A WordPress Application Password for that user
- Lovable workspace owner or admin role
All API requests made through this connector run against your WordPress site. Hosting, plugins, and site-related costs are handled outside Lovable.
Step 1: Get a WordPress Application Password
A WordPress Application Password lets your Lovable app authenticate with the WordPress REST API using HTTP Basic auth. The connected WordPress user’s role controls what the connection can read or change. To create a WordPress Application Password:1
Open your WordPress admin dashboard
Sign in to the WordPress admin for the site you want to connect.
2
Open the user profile
Go to Users → Profile if you are creating a password for your own account. To create a password for another user, go to Users → All Users, open that user, and edit their profile.
3
Create an Application Password
Scroll to Application Passwords. Enter a name for the application, for example
Lovable integration, then click Add New Application Password.4
Copy the password
Copy the generated password and store it securely. WordPress shows it once. You can paste it with or without spaces.
5
Note your site URL and username
Note the HTTPS URL of your WordPress site (for example,
https://blog.example.com) and the WordPress username for the account you used.Step 2: Connect WordPress (self-hosted) to Lovable
You can create multiple connections using different sites or Application Passwords.1
Open WordPress (self-hosted) in Connectors
Go to Connectors → App connectors and select WordPress (self-hosted).
2
Add a connection
Click Add connection.
3
Configure the connection
- Display name: name the connection, for example
WordPress Prod. - Site URL: enter the HTTPS URL of your WordPress site, for example
https://blog.example.com. You can enter the site root or a REST discovery URL such ashttps://blog.example.com/wp-json. - Username: enter the WordPress username for the Application Password.
- Application password: paste the Application Password you generated in WordPress.
4
Choose who can access this connection
Under Who can access this connection, decide who in your workspace can use the connection:
- Only you (default): only the person creating the connection can use it and its associated data.
- Invite specific people: only you and explicitly added workspace members can use the connection and its associated data.
- Invite entire workspace: click Invite entire workspace to make the connection available to everyone in your Lovable workspace.
5
Connect
Click Connect.
Working with WordPress permalinks and REST API routes
WordPress REST API routes require permalinks that are not set to Plain. If verification fails with a route error such asrest_no_route, check that pretty permalinks are enabled under Settings → Permalinks in WordPress admin.
Lovable accepts your site root URL or a REST discovery URL and connects to the WordPress REST API v2 path (/wp-json/wp/v2). Your site must use HTTPS in the Site URL field.
The connector verifies credentials by calling the WordPress users/me endpoint. If verification fails, confirm the username and Application Password match, the user still exists, and the password has not been revoked in WordPress.
Limitations
The WordPress (self-hosted) connector cannot:- Connect to WordPress.com hosted sites. Use the WordPress.com connector for those sites.
- Create Application Passwords or change WordPress user roles for you. Configure these in WordPress admin first.
- Bypass the permissions of the connected WordPress user account.
- Configure WordPress permalinks, hosting, SSL, plugins, or site settings for you.
- Call WooCommerce store APIs. Use the WooCommerce connector for store operations.
- Refresh or rotate Application Passwords automatically. To rotate credentials, create a new Application Password in WordPress and update the Lovable connection.
- Support per-end-user WordPress login. Each connection represents a single WordPress account shared across all projects linked to it.
How to unlink projects from a connection
Editors and above can remove specific projects from a connection without deleting the connection entirely. The connection will remain available for other projects. To unlink projects:1
Open Connectors
Open Connectors, then go to App connectors, and select .
2
Open the connection
Open the connection you want to manage.
3
Select projects
Under Linked projects, check the projects you want to unlink.
4
Confirm
Click Unlink projects and confirm.
How to delete a connection
Workspace admins and owners can delete connections. Other members can delete a connection if they created it, or if they have been explicitly granted access to it. Before deleting, review the Linked projects section to see which projects are currently using the connection. To delete a connection:1
Open Connectors
Open Connectors, then go to App connectors, and select .
2
Open the connection
Open the connection you want to remove.
3
Review linked projects
Review the Linked projects section.
4
Delete
Under Delete this connection, click Delete and confirm.