自定义贴子类插件-单模板

时间:2015-04-23 作者:shanebp

我正在编写一个插件来创建cpt。

我可以包括一个模板,用于使用single_template 滤器并让它在主题中查找模板重载。

function my_cpt_single_template( $single_template ) {
    global $post;

    if ( $post->post_type == \'cpt\' ) {

        $theme_template = locate_template(\'single-cpt.php\');

        if( file_exists( $theme_template ) )
           $single_template = $theme_template;
        else
           $single_template = PLUGIN_DIR . \'/templates/single-cpt.php\';

    }

    return $single_template;
}
add_filter( \'single_template\', \'mp_cpt_single_template\' );
但这会加载一个模板,该模板不考虑主题在单个中可能执行的任何操作。php

那么,有没有办法只注入当前单个cpt的一部分。php成主题的单曲。php?在某种程度上,模板部分可以从主题重载?

正在筛选the_content 表示标记已硬编码到筛选函数中,是吗?因此,用户必须破解该功能,而不是使模板部分过载,并根据需要进行调整,

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

主题模板天生就不能很好地与插件配合使用。据我所知,目前还没有一个干净整洁的解决方案可以在插件中发送模板,并让任意主题来选择它。

有一些库,例如Gamajo Template Loader, 在插件中实现传送模板并允许覆盖它们。但据我所知,您仍然需要注意在主题的某个地方调用模板(part)。

结束

相关推荐

get page templates

我有这个问题,我需要获得所有页面模板。我知道有很多方法可以根据他们的名字得到他们。我知道我可以包含一个页面模板,但我正在尝试将它们包含在索引页面的循环中。我刚刚安装了2012主题,修改了标题以包含我的脚本。我使用了Milo提供的一个功能,将所有帖子和页面加载到正在运行的主页中。现在,我需要包括所有模板,甚至那些我不知道其名称的模板。在抄本中,我发现了一个函数get_page_templates() 这似乎不再有效了。它给出了这个片段 <?php $templates = get_p