2013-07-31 58 views
0

我正在創建一個插件,需要一個虛擬頁面才能動態創建一個「Review Order」頁面(Orders是我創建的一個自定義帖子類型)。虛擬頁面在主題模板

// 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框架中的常規頁面一樣顯示。如何做到這一點?

回答

0

嘗試使用以下:

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

你將需要添加到你的頁面的頂部。

1

一個解決辦法是增加內parse_request模板頁面:

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; 
    } 
}