使自定义帖子类型显示为页面

时间:2012-06-09 作者:Sarathi

我试图在前端显示我的自定义帖子类型,就像它是一个页面一样。根据主题,它不会有日期、作者等。。。

我已经研究过创建一个模板,例如“single-<;CPT>;。php’。但这对于任何主题设计来说都太静态了。

是否可以告诉当前主题以与显示普通页面相同的方式显示自定义帖子类型。

谢谢

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

有许多模板过滤器可用于更改模板层次结构。看看template hierarchy page 在提供的过滤器和示例中。

下面是示例的修改版本,使用single_template. 它检查特定的自定义帖子类型并加载主题的page.php 模板(如果存在):

function wpa54721_single_template( $templates = \'\' ){

    // get data for the current post and check type
    $this_post = get_queried_object();
    if( \'my_custom_post_type\' == $this_post->post_type ):

        // $templates could be empty, a string, or an array,
        // we need to check and alter it appropriately

        if( !is_array( $templates ) && !empty( $templates ) ):
            // it\'s a string
            $templates = locate_template( array( \'page.php\', $templates ), false );
        elseif( empty( $templates ) ):
            // it\'s empty
            $templates = locate_template( \'page.php\', false );
        else:
            // it\'s an array
            $new_template = locate_template( array( \'page.php\' ) );
            if( !empty( $new_template ) ) array_unshift( $templates, $new_template );
        endif;

    endif;

    return $templates;
}
add_filter( \'single_template\', \'wpa54721_single_template\' );

SO网友:Tyler Carter

这是我每天在创建使用大量自定义帖子类型的主题时必须处理的问题。

基本上,我们希望自定义帖子类型具有与常规帖子或页面相同的功能。这意味着类别、档案等。

首先,你应该制作所有的常规页面。这意味着:

存档cpt。php分类cpt。php单cpt。php等现在,如果你做得对,导航到如下页面/custom-post-type/page/2/ 你应该看到你的档案,等等。

现在,这之后的诀窍是让用户在首页上看到您的自定义帖子类型,而不是常规的博客帖子。

要做到这一点,你需要create a page template. 此页面模板最终将像索引一样工作。php或归档。php,其中将列出10篇(或更多)帖子。创建页面后,请在网站上创建新页面,并将页面模板设置为新模板。

之后,进入设置->阅读并选择该页面作为首页。您现在应该有一个您添加的最新自定义帖子的列表。

结束

相关推荐

需要与Single_Term_Slug等价物

我正在构建一个分类法归档页面,并试图在循环之外创建当前术语的链接实例。那么,假设我的分类法和当前术语是:分类法:动物术语:大象我想呼应大象这个术语,并将术语名称链接到大象术语档案。这就是输出:<a href=\"http://www.mywebsite.com/tag/elephants/\">Elephants</a> 在其他地方,我使用single\\u term\\u title();这正好抓住了特定归档页面的术语名称。换句话说,我可以很好地回应标题。我只想把它链接