Wordpress - 在 index.php 上自定义 post 类型 posts
Wordpress - Get custom post type posts on index.php
我为我的主题创建了自定义 post 类型,我希望内容在索引页面上像正常 post 一样显示。
我在 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 -->
我对每个 post 格式都有不同的样式,它保存在 content-"post-format-name".php 中。但是,如果我在我的自定义 post 类型上保存一个 post,post 格式为 "Standard",它仍然不会显示。
有什么办法可以解决这个问题吗?谢谢!
自定义post类型显示
默认情况下,使用主查询和注册自定义 post 类型仅从数据库中检索 posts,对此不做任何更改。
根据 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;
}
标准post格式
标准 post 格式的问题在于 get_post_format
函数 returns FALSE
默认格式 (documentation)。您必须使用一些 if 语句来清理这种情况。
我为我的主题创建了自定义 post 类型,我希望内容在索引页面上像正常 post 一样显示。
我在 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 -->
我对每个 post 格式都有不同的样式,它保存在 content-"post-format-name".php 中。但是,如果我在我的自定义 post 类型上保存一个 post,post 格式为 "Standard",它仍然不会显示。
有什么办法可以解决这个问题吗?谢谢!
自定义post类型显示
默认情况下,使用主查询和注册自定义 post 类型仅从数据库中检索 posts,对此不做任何更改。
根据 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;
}
标准post格式
标准 post 格式的问题在于 get_post_format
函数 returns FALSE
默认格式 (documentation)。您必须使用一些 if 语句来清理这种情况。