API REST: No se encontró ninguna ruta que coincida con la URL y el método de solicitud
Estoy teniendo problemas al agregar una ruta personalizada de API REST a WordPress. Usando mi propio plugin, he registrado la ruta de la siguiente manera:
add_action( 'rest_api_init', function() {
register_rest_route( $namespace, 'handler_mijnenergie', array(
'methods' => '\WP_REST_Server::CREATABLE ',
'callback' => [ $this, 'handle_energie_data' ]
), false );
} );
Cuando llamo al namespace "/wp-json/watz/v1" obtengo una respuesta correcta en Postman que muestra la ruta.
Sin embargo, cuando intento acceder a la ruta directamente, recibo un error 404. Hasta ahora he intentado:
- Reescribir los enlaces permanentes
- Usar el .htaccess estándar de WordPress
- Deshabilitar plugins
- Cambiar el método/namespace y la solicitud
- Probar otras rutas de plugins como Yoast o Contact Form 7 (estas funcionan)
¿Alguna idea de qué podría estar causando el problema y qué necesito modificar para que funcione?

Es por cómo has definido los métodos aceptados:
'methods' => '\WP_REST_Server::CREATABLE ',
No deberías tener comillas alrededor. WP_REST_Server::CREATABLE
es una cadena que equivale a 'POST'
, pero al poner comillas alrededor estás configurando literalmente el método como '\WP_REST_Server::CREATABLE'
, que no es un método HTTP válido. Puedes ver esto en la respuesta al endpoint del namespace.
Configúralo así:
'methods' => WP_REST_Server::CREATABLE
O, si tu archivo está usando un namespace de PHP, así:
'methods' => \WP_REST_Server::CREATABLE
O agrega esto al inicio del archivo:
use WP_REST_Server;
Luego asegúrate de que cuando accedas a la ruta directamente, estés usando el método correcto. Si estás usando WP_REST_Server::CREATABLE
, entonces el endpoint solo responderá a solicitudes POST
, por lo que las solicitudes GET
devolverán un 404, lo que incluye cuando accedes a través del navegador.
