2013-03-31 24 views
1

我開發的WordPress主題有一個集成的自定義帖子類型,稱爲「專輯」,它使用了一些自定義模板(archive-albums.php,content-albums.php等)。爲了便於攜帶,我想將此功能與模板文件一起轉換爲插件。我的WordPress自定義模板可以位於插件文件夾中還是僅位於主題文件夾中?

我從函數.php中成功轉移了CPT代碼,但是當我嘗試將模板文件從主題文件夾移動到插件文件夾時,事情就會崩潰。我覺得應該很簡單,以某種方式註冊模板,所以WordPress知道加載它們。

我的WordPress自定義模板可以在插件文件夾或只有主題文件夾?

+0

你打算跟進這個嗎?你有機會嘗試它嗎? – vtacreative

回答

1

事情正在分崩離析,因爲當你移動這些文件時,你違反了WP的原生模板層次結構。您需要明確聲明這些文件的位置。使用歸檔作爲一個例子,你可以像這樣添加一些的functions.php(告訴WP去別處尋找):

add_filter('template_include', 'include_album_template', 1); 
function include_album_template($template_path) { 
if(get_post_type() == 'albums') { 
    if(!is_single()) { 
     $theme_file = 'path-to-your-plugin-directory'; 
     $template_path = $theme_file; 
    } 
} 
return $template_path; 
} 

顯然你會用自己的路,我寫這個倉促,所以你可能想要重構。

0

我有同樣的問題。我已經使用add_filter ('template_include', ...)的問題是我需要指定一個文件來返回,在這種情況下,它是index.php。這引發了一個問題,主題沒有完全運行,就像通過主題文件夾安裝一樣,因爲我需要的是讓WP選擇合適的文件進行渲染,而不需要我的任何條件邏輯。所以如果它是一個帖子,它會選擇single.php等等。用這種方法提出的另一個問題是在header.php調用get_header();忽略本地文件header.php並改爲加載默認主題安裝文件。

相關問題