2

我已经为 wordpress 插件目录中的自定义页面创建了一个模板文件,但我找不到正确的路径。这段代码不起作用:

update_post_meta( $pas_tasks_page_id, '_wp_page_template', dirname( __FILE__ ) . '/task-list-template.php' );

仅当我将模板文件手动放入 wordpress 主题并将代码更改为:

update_post_meta( $pas_tasks_page_id, '_wp_page_template', '/task-list-template.php' );

但作为插件开发人员,我想在我的插件目录中创建新模板,而不是手动。我该怎么做?

4

1 回答 1

5

我最近使用“template_include”过滤器做了类似的事情。我是这样做的:

function include_template_files() {
    $plugindir = dirname( __FILE__ );

    if (is_post_type_archive( 'post-type-name' )) {
        $templatefilename = 'archive-post_type_name.php';
        $template = $plugindir . '/theme_files/' . $templatefilename;
        return $template;
    }

    if ('post-type-name' == get_post_type() ){
        $templatefilename = 'single-post-type-name.php';
        $template = $plugindir . '/theme_files/' . $templatefilename;
        return $template;
    }
}
add_filter( 'template_include', 'include_template_files' );

我只是使用 wordpress 条件来检查正在请求什么模板,然后在我的插件目录中创建了一个“theme_files”文件夹,并将适当命名的 wordpress 模板文件放在那里。这是为自定义帖子类型创建单个存档模板。

于 2013-01-22T16:16:01.567 回答