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

你能建议我怎么做吗?

提前致谢

4

2 回答 2

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;
}
于 2013-10-30T12:33:29.360 回答
0

首先添加价值作为后元使用下面的功能

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

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

于 2013-10-30T12:17:02.607 回答