Se você trabalha com APIs REST no WordPress, pode ter encontrado o aviso:
“A função register_rest_route foi chamada incorretamente”.
Ou:
“Notice: Function register_rest_route was called incorrectly. The REST API route definition…”
Isso ocorre ao registrar uma rota sem definir o parâmetro obrigatório permission_callback
. Vamos explicar o problema e como resolvê-lo!
Por que ocorre o erro?
Desde o WordPress 5.5, o parâmetro permission_callback
é obrigatório em rotas REST. Ele garante segurança ao validar permissões.
Se ausente, o WordPress exibe um aviso, como:
“The REST API route definition is missing the required permission_callback argument.”
Como corrigir o erro?
A solução é simples: adicionar o permission_callback
ao registrar sua rota com register_rest_route
.
Exemplo de código corrigido:
register_rest_route( 'meuplugin/v1', '/exemplo', array(
'methods' => 'GET',
'callback' => 'meu_callback',
'permission_callback' => '__return_true', // Permite acesso público
) );
Entendendo o parâmetro permission_callback
O permission_callback
é uma função usada para verificar permissões antes de processar a requisição.
Casos comuns de uso:
- Rota pública (sem restrições):
Use__return_true
para permitir acesso público.'permission_callback' => '__return_true',
- Rota privada (restringindo acesso):
Usecurrent_user_can
para validar permissões.'permission_callback' => function() { return current_user_can( 'edit_posts' ); },
- Validação personalizada:
Baseie a permissão em argumentos da requisição.'permission_callback' => function( $request ) { return $request->get_param( 'token' ) === 'seu_token_secreto'; },
Como evitar futuros erros?
- Valide seu código:
Sempre inclua opermission_callback
ao registrar rotas. - Consulte a documentação oficial:
Veja detalhes em: - Atualize regularmente:
Garanta que seu WordPress esteja na versão mais recente para evitar problemas.
Exemplo completo com rota REST personalizada
add_action( 'rest_api_init', function () {
register_rest_route( 'meuplugin/v1', '/dados', array(
'methods' => 'GET',
'callback' => 'meu_callback',
'permission_callback' => function() {
return current_user_can( 'read' );
},
) );
} );
function meu_callback( $request ) {
return array( 'mensagem' => 'API funcionando!' );
}
Com isso, sua rota estará funcional e segura.
Conclusão
Adicionar o permission_callback
evita erros no WordPress e aumenta a segurança da sua API.
Verifique sempre sua implementação e consulte a documentação oficial para detalhes.
Se tiver dúvidas, comente abaixo!
Quer aprender mais sobre WordPress? Confira nosso conteúdo no WP24Horas e domine APIs REST!