自定义帖子类型主页模板

时间:2015-05-30 作者:Ebenizer Pinedo

这就是我想要的:我在我的主题中创建了一个自定义帖子类型,它也显示在我的主页中,但问题是CPT采用了Wordpress中默认帖子的相同元素和样式,我如何分配模板来显示我的CPT?我说的家是指www.mysite。com(index.php的内容,该归档文件具有主页中所有帖子的特性,因此我如何在主页中为我的CPT创建dedicated模板)

检查索引中主题的代码示例。php,但对我不起作用:

<?php if (have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>

                <?php

                if ( get_post_type() == \'reviews\' ) : ?>

                    <?php include( TEMPLATEPATH . \'/includes/show-reviews-frontpage.php\' ); ?>

                <?php elseif ( get_post_type() == \'videos\' ) : ?>

                    <?php include( TEMPLATEPATH . \'/includes/show-videos-frontpage.php\' ); ?>

                <?php elseif ( get_post_type() == \'screenshots\' ) : ?>

                    <?php include( TEMPLATEPATH . \'/includes/show-screenshots-frontpage.php\' ); ?>

                <?php else: ?>

                    <?php include( TEMPLATEPATH . \'/includes/show-posts-frontpage.php\' ); ?>

                <?php endif; ?>

            <?php endwhile; ?>


            <?php endif; ?>
非常感谢。

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

我想你可能想要get_template_part() 加载特定于CPT的代码段。例如(来自法典):

get_template_part( \'nav\', \'single\' ); // Navigation bar to use in single pages (nav-single.php)
然后,您可以重用主页、CPT档案等上的代码片段。

You may also find post formats useful, 虽然我还不清楚你到底想完成什么。

看看《二十一十三》(例如)通过使用content-aside.php, content-audio.php, 等

SO网友:Krzysiek Dróżdż

只有一个主页/首页,所以我不确定,你想实现什么。。。

让我们假设您的页面就是一个示例。com和您的CPT是书本。

如果您想更改主页/frontpage(当您访问example.com时看到的页面)的外观,请使用以下模板之一。

如果您想更改CPT索引的外观(当您转到example.com/books时看到的页面),那么它就是这个CPT的存档模板。。。

如果你想展示关于家的书,那么你应该使用pre_get_posts 更改主页主查询的操作。。。

SO网友:Prasad Nevase

您可以创建页面模板(请参阅https://developer.wordpress.org/themes/basics/page-templates/ ). 页面模板代码应具有自定义查询,以显示自定义帖子类型的POAT。然后创建名为“Home”的页面。将该页面模板分配给它。然后从“设置>阅读”中,选择静态页面至“主页”。

结束

相关推荐

Custom Post Templates

The Issue: 我正在寻找定制的单篇文章模板,以添加或删除单个元素作为普通单篇文章的功能。有很多方法可以在WordPress中为单个帖子创建自定义帖子模板。尤其是post格式是使用默认模板处理默认情况的绝佳机会;然而,我需要真正的自定义模板。The Idea: 我的第一种方法是根据post ID添加if/else语句:// check if custom post if ( is_single(\'999\') ) // check if there is a custom