假设该页面模板未设置为Blog Posts Page
:
使用pre_get_posts
只显示一个类别不起作用,因为主查询只包含页面内容,而不是post循环。因此,我们可以通过使用WP_Query
.
看看WP_Query
category parameters
<?php
$args = new WP_Query( array( \'cat\' => "YOUR CATEGORY ID" ) );
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
the_content();
}
/* Restore original Post Data */
wp_reset_postdata();
} else {
// no posts found
}
如果页面设置为
Posts Page
然后我们可以使用
pre_get_posts
(英寸
functions.php
)
function home_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'cat\', \'1\' ); // set req. cat id
}
}
add_action( \'pre_get_posts\', \'home_category\' );
Note:
正如@PieterGoosen所指出的:
单页不需要while循环,只需要调用\\u post()。这就是你真正需要的一切。然而,最好将while循环部分作为一些插件的挂钩have_posts()