2013-01-21 91 views
1

我已經爲WordPress插件目錄中的自定義頁面創建了一個模板文件,但找不到正確的路徑。這段代碼不起作用:如何在我的插件中創建模板文件?

update_post_meta($pas_tasks_page_id, '_wp_page_template', dirname(__FILE__) . '/task-list-template.php'); 

它的工作原理,只有當我把手工模板文件到WordPress主題和不斷變化的代碼:

update_post_meta($pas_tasks_page_id, '_wp_page_template', '/task-list-template.php'); 

但作爲一個插件開發者,我想在我的插件目錄中不是手動創建新模板。我應該怎麼做?

回答

4

我最近做了一些像這樣使用「template_include」過濾器。我這樣做是這樣的:

function include_template_files() { 
    $plugindir = dirname(__FILE__); 

    if (is_post_type_archive('post-type-name')) { 
     $templatefilename = 'archive-post_type_name.php'; 
     $template = $plugindir . '/theme_files/' . $templatefilename; 
     return $template; 
    } 

    if ('post-type-name' == get_post_type()){ 
     $templatefilename = 'single-post-type-name.php'; 
     $template = $plugindir . '/theme_files/' . $templatefilename; 
     return $template; 
    } 
} 
add_filter('template_include', 'include_template_files'); 

我只是用WordPress的條件語句來檢查正在要求什麼什麼模板,然後在我的插件目錄中創建一個「theme_files」的文件夾,並放置在有適當命名的WordPress的模板文件。這是爲自定義帖子類型創建單個和存檔模板。

相關問題