A configuração manual de is_404 = false;
corrigiu meu problema. No entanto, não tenho certeza se esta é a melhor maneira de fazer isso. Eu tentei usar o filtro pre_get_posts
sem sorte.
De qualquer forma, para qualquer outra pessoa no mesmo barco, você pode fazer isso para se livrar do estado 404:
public function add_response_template($template) {
global $wp_query;
if ( 'my_custom_url' === get_query_var( 'pagename' ) ) {
$wp_query->is_404 = false;
$template = trailingslashit( dirname( __FILE__ ) ) . 'templates/custom-page-template.php';
}
return $template;
}
E para atualizar o título do documento (O material dentro de <title>
na seção <head>
), aqui está um trecho para fazer isso funcionar também.
add_filter( 'document_title_parts', function($title_arr) {
if ( 'my_custom_url' === get_query_var('pagename') ) {
$title_arr['title'] = "Document title for my custom route";
}
return $title_arr;
}, 10, 1 );
Se alguém souber de uma maneira melhor, por favor me avise.