0
127

SHARE

Como Resolver o Erro “register_rest_route foi chamada incorretamente” no WordPress

Se você trabalha com APIs REST no WordPress, pode ter encontrado o aviso: “A função register_rest_route foi chamada incorretamente”.

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:

  1. Rota pública (sem restrições):
    Use __return_true para permitir acesso público. 'permission_callback' => '__return_true',
  2. Rota privada (restringindo acesso):
    Use current_user_can para validar permissões. 'permission_callback' => function() { return current_user_can( 'edit_posts' ); },
  3. 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?

  1. Valide seu código:
    Sempre inclua o permission_callback ao registrar rotas.
  2. Consulte a documentação oficial:
    Veja detalhes em:
  3. 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!

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Configurações Essenciais para um Ambiente Avançado no WordPress

Configurações Essenciais para um Ambiente Avançado no WordPress

Configuração Avançada de Ambiente de Desenvolvimento para WordPress

Configuração Avançada de Ambiente de Desenvolvimento para WordPress

Diferenças entre Temas, Plugins, Widgets e Custom Post Types no WordPress

Diferenças entre Temas, Plugins, Widgets e Custom Post Types no WordPress

PHP Notice: Function _load_textdomain_just_in_time was called incorrectly (RESOLVIDO)

PHP Notice: Function _load_textdomain_just_in_time was called incorrectly (RESOLVIDO)

Conclusão: Resumo e Próximos Passos no Desenvolvimento WordPress

Conclusão: Resumo e Próximos Passos no Desenvolvimento WordPress

Recursos e Comunidade: Onde Buscar Suporte e Continuar Aprendendo

Recursos e Comunidade: Onde Buscar Suporte e Continuar Aprendendo

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!