Autenticando requisições à REST API: nonces vs Application Passwords
Como escolher o método de autenticação adequado para cada cenário de consumo da REST API do WordPress.
Causa
Endpoints autenticados retornam 401 Unauthorized quando a requisição não envia credenciais reconhecidas pelo WordPress — um erro comum tanto em scripts no front-end quanto em integrações externas.
Como resolver
Para chamadas feitas pelo próprio site (JavaScript no admin/front-end), envie o cabeçalho X-WP-Nonce gerado com wp_create_nonce('wp_rest'). Para integrações externas (apps, serviços de terceiros), utilize Application Passwords, que dispensam o compartilhamento da senha principal do usuário.
PHP
// PHP: gerando o nonce para uso no front-end
wp_localize_script( 'meu-script', 'meuApp', [
'root' => esc_url_raw( rest_url() ),
'nonce' => wp_create_nonce( 'wp_rest' ),
] );