Wordpress 主题模板中的虚拟页面

Wordpress 主题模板中的虚拟页面,wordpress,templates,themes,virtual,Wordpress,Templates,Themes,Virtual,我正在创建一个插件,它需要一个虚拟页面,以便动态创建一个“查看订单”页面(订单是我创建的自定义帖子类型)。我能够使用以下代码创建虚拟页面: // Set up the rewrite rules for the order page add_action( 'init', 'action_init_redirect' ); function action_init_redirect() { add_rewrite_rule( 'orders/?', 'index.php?orders=new

我正在创建一个插件,它需要一个虚拟页面,以便动态创建一个“查看订单”页面(订单是我创建的自定义帖子类型)。我能够使用以下代码创建虚拟页面:

// Set up the rewrite rules for the order page
add_action( 'init', 'action_init_redirect' );
function action_init_redirect() {
  add_rewrite_rule( 'orders/?', 'index.php?orders=new', 'top' );
}

add_filter( 'query_vars', 'filter_query_vars' );
function filter_query_vars( $query_vars ) {
  $query_vars[] = 'orders';
  return $query_vars;
}

add_action( 'parse_request', 'action_parse_request');
function action_parse_request( &$wp ) {
  if ( array_key_exists( 'orders', $wp->query_vars ) ) {

    //Beginning of page code

    echo "hello";
    exit;
  }
}

问题是这会创建一个带有空白模板的页面,也就是说,上面的代码创建了一个带有文本
hello
的空白页面。我想虚拟页面是在该网站的主题,并显示像在WordPress框架内的常规页面。如何做到这一点?

尝试使用以下方法:

define('WP_USE_THEMES', true);
require('/ABSOLUTE_PATH_HERE/wp-blog-header.php');
require('/ABSOLUTE_PATH_HERE/wp-load.php');   

您需要将其添加到页面顶部。

解决方案是在
解析请求中添加模板页面:

function action_parse_request( $wp ) {
    if ( array_key_exists( 'virtual', $wp->query_vars ) ) {
        get_header(); ?>    
        <div id="primary">
            <div id="content" role="main">    
                Hello, world!    
            </div>
        </div>
        <?php get_footer();
        exit;
    }
}
函数操作解析请求($wp){
如果(数组\u键\u存在('virtual',$wp->query\u vars)){
获取_头();?>
你好,世界!