我正在尝试在页面末尾追加查询var时加载新的页面模板: 原始网址:example.com/testpage/ 变量添加到最后:example.com/testpage/amp
然后它会加载一个自定义的PHP模板。 这似乎是一个直接的操作,但我无法让它工作。 url在末尾加载/ amp变量,但模板不加载。如果我删除条件" get_query_var(' amp')"那么它加载模板没问题。我错过了什么?谢谢:))
这是我的工作代码:
add_filter( 'query_vars', 'register_query_var' );
function register_query_var( $vars ) {
$vars[] = 'amp';
return $vars;
}
add_rewrite_endpoint( 'amp', EP_PAGES );
add_filter( 'template_include', 'use_amp_template', 99 );
function use_amp_template( $template ) {
global $wp_query;
if ( get_query_var( 'amp' ) && is_page() ) {
$new_template = locate_template( array( 'amptemplate.php' ) );
if ( '' != $new_template ) {
return $new_template;
}
}
return $template;
}
答案 0 :(得分:0)
我自己找到了一个很好的解决方案。这是代码,如果它可以帮助任何人。 在页面或帖子后添加“放大器”将为该页面的放大器版本加载不同的模板。 example.com/samplepage/amp 要么 example.com/samplepost/amp
add_filter( 'query_vars', 'register_query_var' );
function register_query_var( $vars ) {
$vars[] = 'amp';
return $vars;
}
add_rewrite_endpoint( 'amp', EP_PAGES | EP_PERMALINK );
add_filter( 'template_include', 'use_amp_template', 99 );
function use_amp_template( $template ) {
global $wp_query;
if(isset( $wp_query->query['amp'] ) && is_page()){
$new_template = locate_template( array( 'amppagetemplate.php' ) );
if ( '' != $new_template ) {
return $new_template;
}
}
if(isset( $wp_query->query['amp'] ) && is_single()){
$new_template = locate_template( array( 'ampposttemplate.php' ) );
if ( '' != $new_template ) {
return $new_template;
}
}
return $template;
}