Php WordPress插件:使用include代替重定向

Php WordPress插件:使用include代替重定向,php,wordpress,plugins,Php,Wordpress,Plugins,我正在开发一个WP插件,在维护启用时重定向用户 if( ! is_page( intval( $maintenance_options['page'] ) ) ) { wp_redirect( get_permalink( $maintenance_options['page'] ) ); exit; } 我宁愿不重定向用户,而是包含页面。这个例子是完全错误的,但要澄清一下: include($maintenance_options['page']); 。。。因此,用户停留在索引上,

我正在开发一个WP插件,在维护启用时重定向用户

if( ! is_page( intval( $maintenance_options['page'] ) ) ) {
    wp_redirect( get_permalink( $maintenance_options['page'] ) ); exit;
}
我宁愿不重定向用户,而是包含页面。这个例子是完全错误的,但要澄清一下:

include($maintenance_options['page']);
。。。因此,用户停留在索引上,而不是斜杠页面

这可能吗?安全吗?我如何执行它?

有一个名为
的模板\u include

这个过滤器钩子在WordPress包含预定模板文件之前立即执行。这可用于覆盖WordPress的默认模板行为

例如:

add_filter( 'template_include', 'maintenance_template', 99 );
function maintenance_template( $template ) {
    if( ! is_page( intval( $maintenance_options['page'] ) ) ) {
        $new_template = locate_template( array( 'path-to-template-relative-to-theme-root.php' ) );
        if ( '' != $new_template ) {
            return $new_template ;
        }
    }
    return $template;
}

很高兴知道,谢谢。相对于theme root.php,模板的路径是什么意思?我不知道“他们”是谁。我把它作为占位符写了下来。您需要将该路径替换为模板的实际路径。该模板路径是相对于主题根目录的。所以这也允许我给用户一个空白页面模板?那也是我需要的!