我正在创建自己的插件..
我的代码是
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 模板....
你可以建议我怎么做吗?提前致谢
答案 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);
如果不存在则添加,如果存在则更新。在这里你可以传递你想要的路径值。