如何将模板附加到页面

时间:2013-10-30 11:51:09

标签: php wordpress wordpress-plugin

我正在创建自己的插件..

我的代码是

 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 模板....

你可以建议我怎么做吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

您不需要分配页面模板元。使用过滤器template_include并检查页面slug,我们可以从插件的文件夹中加载模板:

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

答案 1 :(得分:0)

首先要在函数下面添加值作为后元使用

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

如果不存在则添加,如果存在则更新。在这里你可以传递你想要的路径值。