我尝试注册一个URL,我想为其加载一个自定义模板(并列出我已经注册并在其他地方工作过的CPT的十到十二个项目)。
我有以下代码:
public function url_for_calendar() {
add_rewrite_rule( \'events\', \'index.php?upcoming-events=true\', \'top\' );
}
public function upcoming_event_query_var ( $vars ) {
$vars[]=\'upcoming-events\';
return $vars;
}
public function template_for_calendar( $path ) {
if ( get_query_var( \'upcoming-events\' ) ) {
$template = get_template_directory() . \'/upcoming-events.php\';
return $template;
}
return $path;
}
相应的(都发生在一个类中):
add_action ( \'init\', array( $this, \'url_for_calendar\' ) );
add_action ( \'query_vars\', array( $this, \'upcoming_event_query_var\' ) );
add_action ( \'template_redirect\', array( $this, \'template_for_calendar\' ) );
自定义URL已注册(是的,我重新保存了permalink设置),我可以在调试器中看到,我正在检查template\\u for\\u calendar,并且已注册并捕获查询变量,并且我正在template\\u for\\u calendar的末尾返回自定义模板的路径。。。但我没有看到那个模板,而是回家了。php。
我做错了什么?谢谢和问候。