2013-10-30 57 views
2

我創造我自己的插件..如何安裝模板的頁面

我的代碼是

function createTable() 
{ 
    global $user_ID; 
    $page['post_type'] = 'page'; 
    $page['post_content'] = 'hello this page created by plugin'; 
    $page['post_parent'] = 0; 
    $page['post_author'] = $user_ID; 
    $page['post_status'] = 'publish'; 
    $page['post_title'] = 'dpage'; 
    $pageid = wp_insert_post ($page); 
    global $wpdb; 
    $wpdb->query("insert into wp_postmeta(post_id,meta_key,meta_value) values (".$pageid.",'_wp_page_template','c1.php')"); 
} 

上面的代碼爲我工作的罰款。

我的問題是在這裏,我將模板c1.php分配給我新創建的頁面。但是,我必須複製c1.php中只有我的主題目錄....

,但我想從我的插件目錄附加c1.php模板....

能你建議我該怎麼做?

在此先感謝

回答

1

您並不需要分配頁面模板元。使用過濾器template_include和檢查頁面刺蛾,我們可以從插件的文件夾中加載模板:

add_filter('template_include', 'plugin_template_so_19681471'); 

function plugin_template_so_19681471($template) 
{ 
    if(is_page('dpage')) 
     # the file is located at the same level as the plugin main file 
     $template = dirname(__FILE__) . '/c1.php'; 

    return $template; 
} 
+0

它不採取 –

+0

是你確定頁面的slu is是'dpage'?你也可以在'is_page()'中使用ID。並且是與主插件文件相同級別的文件「c1.php」?我在一個迷你插件中測試了它,併爲我工作。 – brasofilo

+0

如何找到slu??對不起,我是wordpress中的新手......它不在桌面wp_post –

0

首先要增加價值爲元后使用下面的功能

update_post_meta($post_id, $meta_key, $meta_value, $prev_value); 

如果不存在,並且更新,如果存在,它會增加。在這裏你可以傳遞你想要的價值。

+0

我嘗試添加「plugins_url(」 c1.php「 __ FILE__)」,並將其插入在正確的路徑數據庫也..但它不採取模板 –

+0

採取模板意味着當試圖顯示? –

+0

是的,它顯示post_content,而不是顯示我的c1.php模板 –