O WordPress 7.0 introduz a Connectors API (API de Conectores) — uma nova estrutura (framework) para registrar e gerenciar conexões com serviços externos. O foco inicial está nos provedores de Inteligência Artificial, fornecendo ao WordPress uma forma padronizada de gerenciar chaves de API, descobrir provedores e oferecer uma interface de usuário (UI) administrativa para configurar serviços de IA.
Este post detalha o que a Connectors API faz, como ela funciona por baixo dos panos e o que os desenvolvedores de plugins precisam saber.
O que é um conector?
Um conector representa uma conexão com um serviço externo. Cada conector carrega metadados padronizados — nome de exibição, descrição, logotipo, configuração de autenticação e uma associação opcional a um plugin do WordPress.org. O sistema atualmente foca em provedores que se autenticam por meio de uma chave de API, mas a arquitetura foi projetada para suportar tipos adicionais de conectores em versões futuras.
O WordPress 7.0 vem com três conectores nativos (em destaque) — Anthropic, Google e OpenAI — acessíveis a partir da nova tela em Configurações Conectores, o que torna a instalação fácil e contínua.
Cada conector é armazenado como um array associativo com o seguinte formato:
array(
'name' => 'Anthropic',
'description' => 'Text generation with Claude.',
'logo_url' => 'https://example.com/anthropic-logo.svg',
'type' => 'ai_provider',
'authentication' => array(
'method' => 'api_key',
'credentials_url' => 'https://platform.claude.com/settings/keys',
'setting_name' => 'connectors_ai_anthropic_api_key',
),
'plugin' => array(
'file' => 'ai-provider-for-anthropic/plugin.php',
),
)
Como provedores de IA são descobertos automaticamente
Se você está construindo um plugin de provedor de IA que se integra ao WP AI Client, não precisa registrar um conector manualmente. A Connectors API descobre automaticamente os provedores por meio do registro (registry) padrão do WP AI Client e cria os conectores com os metadados corretos.
Aqui está o que acontece durante a inicialização:
- Os conectores nativos (Anthropic, Google, OpenAI) são registrados com padrões definidos diretamente no código (hardcoded defaults).
- O sistema consulta o
AiClient::defaultRegistry()em busca de todos os provedores registrados. - Para cada provedor, os metadados (nome, descrição, logo, método de autenticação) são mesclados por cima dos padrões, de forma que os valores vindos do registro do provedor assumam a precedência.
- A action
wp_connectors_inité disparada para que os plugins possam sobrescrever metadados ou registrar conectores adicionais.
Em resumo: se o seu plugin de provedor de IA for registrado no WP AI Client, o conector será criado para você automaticamente e nenhum código adicional será necessário.
A tela de administração Configurações > Conectores
Os conectores registrados aparecem em uma nova tela de administração, localizada em Configurações > Conectores. A tela renderiza cada conector como um cartão (card), e os dados do registro definem o que é exibido nela:
name,descriptionelogo_urlsão mostrados no cartão.- plugin.file — o valor corresponde ao caminho principal do arquivo do plugin em relação ao diretório de plugins (por exemplo, akismet/akismet.php ou hello.php). A tela utiliza essa informação para verificar se o plugin associado está instalado e ativo, exibindo o botão de ação correspondente.
authentication.credentials_urlé renderizado como um link que direciona os usuários ao site do provedor para a obtenção das credenciais da API.- Para conectores do tipo
api_key, a tela mostra a fonte atual da chave (variável de ambiente, constante PHP ou banco de dados) e o seu status de conexão.
Conectores com outros métodos de autenticação são armazenados no registro do PHP e expostos por meio dos dados do módulo de script (script module), mas, atualmente, exigem um registro de JavaScript do lado do cliente (client-side) caso você queira uma interface personalizada no frontend.
Autenticação e gerenciamento de chaves de API
Os conectores suportam dois métodos de autenticação:
api_key— Exige uma chave de API, que pode ser fornecida via variável de ambiente, constante PHP ou armazenada no banco de dados (nesta ordem de verificação).none— Nenhuma autenticação é necessária.
O método de autenticação (api_key ou none) é determinado pelos metadados de autenticação do registro do conector. Para provedores usando api_key, um nome de opção (setting) para o banco de dados é gerado automaticamente utilizando o padrão connectors_{$provider_type}_{$provider_id}_api_key. Também é possível definir um nome personalizado usando a propriedade setting_name. As chaves de API salvas no banco de dados não são encriptadas, mas ficam mascaradas e ocultas na interface de usuário. A adição de criptografia está sendo explorada em um ticket de acompanhamento: #64789.
Para provedores de IA, existe uma convenção de nomenclatura específica para variáveis de ambiente e constantes PHP: {PROVIDER_ID}_API_KEY (por exemplo, o provedor da anthropic seria mapeado para ANTHROPIC_API_KEY). Para outros tipos de provedores, pode-se, de modo opcional, definir uma variável de ambiente (env_var_name) e uma constante PHP (constant_name) com qualquer valor.
Prioridade de origem da chave de API
Para conectores api_key, o sistema busca o valor da configuração exatamente nesta ordem:
- Variável de ambiente — ex.:
ANTHROPIC_API_KEY - Constante PHP — ex.:
define( 'ANTHROPIC_API_KEY', 'sk-...' ); - Banco de dados — salvo através da tela de administração, ex.: a opção
connectors_ai_anthropic_api_key.
Funções públicas da API
A Connectors API fornece três funções públicas para interagir com o registro. Elas ficam disponíveis após a ação init.
wp_is_connector_registered()
Verifica se um conector está registrado:
if ( wp_is_connector_registered( 'anthropic' ) ) {
// O conector da Anthropic está disponível.
}
wp_get_connector()
Recupera os dados de um único conector:
$connector = wp_get_connector( 'anthropic' );
if ( $connector ) {
echo $connector['name']; // 'Anthropic'
}
Retorna um array associativo contendo as chaves: name, description, type, authentication e, opcionalmente, logo_url e plugin. Retorna null caso o conector não esteja registrado.
wp_get_connectors()
Recupera todos os conectores registrados, sendo as chaves (keys) os respectivos IDs de cada conector:
$connectors = wp_get_connectors();
foreach ( $connectors as $id => $connector ) {
printf( '%s: %s', $connector['name'], $connector['description'] );
}
Sobrescrevendo metadados do conector
A action wp_connectors_init é disparada após o registro de todos os conectores nativos e autodescobertos. Os plugins podem usar este hook para sobrescrever os metadados dos conectores existentes.
Considerando que o registry (registro) rejeita IDs duplicados, para realizar uma sobrescrita é necessário efetuar uma sequência de remoção (unregister), modificação e um novo registro (register):
add_action( 'wp_connectors_init', function ( WP_Connector_Registry $registry ) {
if ( $registry->is_registered( 'anthropic' ) ) {
$connector = $registry->unregister( 'anthropic' );
$connector['description'] = __( 'Custom description for Anthropic.', 'my-plugin' );
$registry->register( 'anthropic', $connector );
}
} );
Pontos importantes sobre o padrão de sobrescrita:
- Sempre verifique utilizando
is_registered()antes de chamarunregister()— invocarunregister()num conector que não existe irá disparar um aviso_doing_it_wrong(). unregister()retorna os dados do conector, os quais você pode então modificar e repassar pararegister().- Os IDs de conector devem respeitar a RegEx
/^[a-z0-9_-]+$/(ou seja, permitem apenas letras minúsculas sem acento, números, sublinhados e hífens).
Métodos de registro (Registry methods)
Dentro do callback de wp_connectors_init, a instância de WP_Connector_Registry fornece os seguintes métodos:
register( $id, $args ): Registra um novo conector. Retorna os dados do conector ounullcaso haja falha.unregister( $id ): Remove um conector e retorna seus dados. Retornanullcaso o conector não seja encontrado.is_registered( $id ): Checa se um conector existe.get_registered( $id ): Recupera os dados de um único conector.get_all_registered(): Recupera todos os conectores registrados.
Fora do escopo do callback wp_connectors_init, é recomendado usar as funções públicas da API (wp_get_connector(), wp_get_connectors(), wp_is_connector_registered()) ao invés de acessar a instância do registro diretamente.
O ciclo de vida de inicialização
Entender a sequência do processo de inicialização te ajudará a decidir o momento e o local certo para inserir seus hooks:
Durante a ação init, a função _wp_connectors_init() é processada e faz o seguinte:
- Cria a instância única (singleton) do
WP_Connector_Registry. - Registra os conectores nativos (Anthropic, Google, OpenAI) com valores padrões rígidos no código (hardcoded defaults).
- Autodescobre os provedores provenientes do registro do WP AI Client e mescla seus metadados assumindo a precedência sobre os padrões.
- Dispara a action
wp_connectors_init— este é o local exato onde plugins devem realizar as sobrescritas de metadados ou os registros de novos conectores adicionais.
A action wp_connectors_init é o único ponto de entrada que tem o suporte oficial para alterar o registro. A tentativa de configuração da instância do registro fora da etapa de init irá acionar um aviso _doing_it_wrong().
Olhando para o futuro
A API de Conectores no WordPress 7.0 foi otimizada inicialmente para provedores de IA, mas a arquitetura de base foi projetada para escalar. No momento, apenas os conectores com autenticação via api_key recebem o tratamento visual completo no painel do administrador (admin UI).
No PHP, o registro já aceita livremente qualquer tipo de conector — a peça que falta, por enquanto, é apenas a integração do frontend com conectores baseados em diferentes mecanismos de autenticação.
As expectativas para futuros lançamentos incluem:
- Expandir o suporte aos métodos adicionais de autenticação, indo muito além de
api_keyenone. - Oferecer ainda mais integrações de interface visual (UI) para outros tipos além de
api_key. - Fornecer uma API de registro em JavaScript, voltada ao cliente (client-side), para a criação de UIs de conectores personalizados.
Quando estas capacidades forem lançadas e estiverem ativas, a action wp_connectors_init funcionará como o hook principal para registrar os novos tipos de conectores.
Post original: https://make.wordpress.org/core/2026/03/18/introducing-the-connectors-api-in-wordpress-7-0/
Fonte: Wordpress Brasil