主页模板-特定类别

时间:2016-07-11 作者:Jarod Thornton

我找不到具体的解决办法。不过我相信这很容易。我的主页设置为显示帖子。如何将帖子缩小到单个类别?我已经在其他地方找过了,但没有找到什么好办法,因为主页使用的是post\\u格式。

非常感谢。

1 个回复
最合适的回答,由SO网友:bravokeyl 整理而成

假设该页面模板未设置为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()