我在WordPress网站上使用免费主题index.php
如下所示:
<?php if (have_posts()) : ?>
<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$total_post_count = wp_count_posts();
$published_post_count = $total_post_count->publish;
$total_pages = ceil( $published_post_count / $posts_per_page );
if ( "1" < $paged ) : ?>
<div class="page-title">
<h4><?php printf( __(\'Page %s of %s\', \'hitchcock\'), $paged, $wp_query->max_num_pages ); ?></h4>
</div> <!-- /page-title -->
<div class="clear"></div>
<?php endif; ?>
<div class="posts" id="posts">
<?php while (have_posts()) : the_post() ; ?>
<?php get_template_part( \'content\', get_post_format() ); ?>
<?php endwhile; ?>
<div class="clear"></div>
</div> <!-- /posts -->
<?php endif; ?>
<div class="clear"></div>
<?php hitchcock_archive_navigation(); ?>
这显示了我网站上的最新帖子。我想修改这个代码,只显示某个类别的帖子。这是我可以修改或添加代码的东西吗?
最合适的回答,由SO网友:alxndrbauer 整理而成
您可以使用操作pre_get_posts
. 它在创建查询对象之后但在运行查询之前被激发。
这是官方纪录片中仅显示一个类别的示例:
在您的functions.php
添加以下内容:
function my_home_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'cat\', \'123\' );
}
}
add_action( \'pre_get_posts\', \'my_home_category\' );