Wordpress - 在index.php上获取自定义帖子类型的帖子

时间:2016-01-21 10:53:33

标签: php wordpress custom-post-type post-format

我为自己的主题制作了自定义帖子类型,我希望内容能够像索引页面上的普通帖子一样显示。

我在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;它仍然没有出现。

我有什么想法可以解决这个问题?谢谢!

1 个答案:

答案 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语句来清理此案例。