我试图通过循环和CPT实现一些东西。我已经建立了一个模板页面,它将是我的网站的主页,显示文章和视频(CPT)。如何将CPT添加到循环中,使其以某种提要的顺序显示两者?
我已将下面的代码片段添加到functions.php
:
// Custom loop feed
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\', \'videos\' ) );
return $query;
}
然后将循环代码放入
homepage.php
.
问题是,它显示在我的博客页面上,但在我的主页上,它为主页发了一篇帖子。
我做错什么了吗?
最合适的回答,由SO网友:Mike D 整理而成
有几种方法可以完成你想要做的事情。我想我要做的第一件也是最简单的事就是把你的电话换成is_home()
具有is_ftont_page()
. 阅读here 对于两者之间的差异。
如果这不能解决您的问题,您可以尝试致电WP_query 从模板代码中。它可能看起来像这样:
$query = new WP_query(
array(
\'post_type\' => array(\'post\', \'videos\'),
\'post_status\' => \'publish\',
\'order\' => \'ASC\'
)
);
foreach ($query->posts as $post) {
// Your display code here.
}
有很多参数可以修改,以使查询按您想要的方式工作。这些都在文档中。如果您走这条路线,您可能希望删除“pre\\u get\\u posts”挂钩。
希望这有帮助!