mirror of
https://github.com/WordPress/WordPress.git
synced 2026-06-19 07:37:07 +00:00
Connectors: Add connector registry for extensibility
Introduces `WP_Connector_Registry` class and a `wp_connectors_init` action hook so plugins can register their own connectors alongside the built-in defaults (Anthropic, Google, OpenAI). Key changes: * `WP_Connector_Registry` — A `final` singleton class managing connector registration and lookup, with validation for IDs, required fields, and authentication methods. * `wp_connectors_init` action — Fired during `init` after built-in connectors are registered. Passes the registry instance so plugins call `$registry->register()` directly. * `_wp_connectors_init()` — Private function that creates the registry, merges hardcoded defaults with AI Client registry data, registers them, then fires the action. * Public read-only functions — `wp_is_connector_registered()`, `wp_get_connector()`, `wp_get_connectors()` for querying the registry after initialization. * Logo URL support — Connectors can include an optional `logo_url` field resolved from plugin directories via `_wp_connectors_resolve_ai_provider_logo_url()`. * Timing guards — `set_instance()` rejects calls after `init` completes. Registration is only possible during `wp_connectors_init`. * Connector API key settings are now only registered when the provider exists in the AI Client registry. * Refactors `_wp_connectors_get_connector_settings()` to read from the registry via `wp_get_connectors()`. Developed in https://github.com/WordPress/wordpress-develop/pull/11175 Props gziolo, flixos90, mukesh27, westonruter. Fixes #64791. Built from https://develop.svn.wordpress.org/trunk@61943 git-svn-id: http://core.svn.wordpress.org/trunk@61225 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -294,6 +294,7 @@ require ABSPATH . WPINC . '/ai-client/adapters/class-wp-ai-client-event-dispatch
|
||||
require ABSPATH . WPINC . '/ai-client/class-wp-ai-client-ability-function-resolver.php';
|
||||
require ABSPATH . WPINC . '/ai-client/class-wp-ai-client-prompt-builder.php';
|
||||
require ABSPATH . WPINC . '/ai-client.php';
|
||||
require ABSPATH . WPINC . '/class-wp-connector-registry.php';
|
||||
require ABSPATH . WPINC . '/connectors.php';
|
||||
require ABSPATH . WPINC . '/class-wp-icons-registry.php';
|
||||
require ABSPATH . WPINC . '/widgets.php';
|
||||
|
||||
Reference in New Issue
Block a user