明白了!但这是一件肮脏的事情。因为它不会处理分页和底层查询。如果你需要更多的WordPress的自定义路线背后的逻辑,请查看评论中链接的答案。但如果您只需要提供一个静态页面,这可能是一个很好的起点:
add_action(\'template_include\', \'template_suggestions\');
function template_suggestions($template) {
global $wp;
$current_slug = $wp->request;
$foobar_template = locate_template([\'foobar.php\']);
if ($current_slug == \'foobar\' && $foobar_template != \'\') {
// Prevent 404.
status_header(200);
return $foobar_template;
}
return $template;
}
来源:
Don’t use template_redirect to load an alternative template file因为我用的是Yoast,所以我不得不用wpseo_title
而不是document_title_parts
或pre_get_document_title
相应地设置标题。
add_filter(\'wpseo_title\', \'template_suggestions_titles\', 10, 1);
function template_suggestions_titles() {
global $wp;
$current_slug = $wp->request;
if ($current_slug == \'foobar\') {
return \'Foobar\';
}
}