我为自己的主题制作了自定义帖子类型,我希望内容能够像索引页面上的普通帖子一样显示。
我在index.php上的代码看起来像这样
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<div class="container">
<?php
if( have_posts() ):
while( have_posts() ): the_post();
get_template_part( 'template-parts/content', get_post_format() );
endwhile;
endif;
?>
</div><!-- .container -->
</main>
</div><!-- #primary -->
我对每种帖子格式都有不同的风格,并将其保存在内容中 - &#34; post-format-name&#34; .php。但是,如果我在自定义帖子类型上保存帖子,其帖子格式为&#34;标准&#34;它仍然没有出现。
我有什么想法可以解决这个问题?谢谢!
答案 0 :(得分:2)
默认情况下,只使用主查询从数据库中检索帖子,并在此注册自定义帖子类型。
根据documentation,你必须加入pre_get_posts
这样的行动
// Show posts of 'post', 'page' and 'movie' post types on home page
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'page', 'movie' ) );
return $query;
}
标准发布格式的问题是get_post_format
函数返回FALSE
作为默认格式(documentation)。您必须使用一些if语句来清理此案例。