Creé un complemento que configura una ruta personalizada y luego carga un archivo de plantilla para esa URL. Todo funciona bien, excepto que WordPress parece pensar que es un 404 aunque esté renderizando correctamente mi plantilla.
Por ejemplo, dice 404 en el título del documento y se agrega una clase error404
a <body>
La url personalizada es domain.com/path/:id donde :id
es un valor dinámico correspondiente a una ID de publicación, por lo que la URL podría ser domain.com/path/275. En el siguiente ejemplo, some_id
se utiliza como la variable de ID de publicación.
Aquí hay una versión reducida de mi complemento:
<?php
class MyPlugin {
public function __construct() {
add_action( 'init', array($this, 'add_response_endpoint') );
add_filter( 'template_include', array($this, 'add_response_template') );
}
public function add_response_endpoint() {
add_rewrite_rule(
'^path/([0-9]+)/?',
'index.php?pagename=my_custom_url&some_id=$matches[1]',
'top'
);
add_rewrite_tag('%some_id%', '([^&]+)');
}
public function add_response_template($template) {
if ( get_query_var( 'pagename' ) === 'my_custom_url' ) {
$template = trailingslashit( dirname( __FILE__ ) ) . 'templates/custom-page-template.php';
}
return $template;
}
}
new MyPlugin();
¿Me estoy perdiendo algo aquí? ¿O debería empezar a buscar este error en otra parte?