You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress分类页面动态展示对应分类的文章列表?

问题原因

你现有代码未加入当前分类的筛选条件,所以get_posts默认会返回全站所有公开状态的文章。

解决方案

方案1:使用WordPress原生主循环(推荐)

标准分类模板category.php自带默认主查询,已经自动做好了当前分类的文章筛选逻辑,无需额外自定义查询,代码更简洁、兼容性更好:

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php endwhile; ?>

    <!-- 可选:添加分页功能 -->
    <?php the_posts_navigation(); ?>
<?php else : ?>
    <p>当前分类下暂无文章</p>
<?php endif; ?>

方案2:自定义查询适配需求

如果你确实需要自定义查询(比如固定每页显示5篇、额外追加其他筛选条件),只需要在get_posts的参数中加入当前分类ID的筛选即可,修改后代码如下:

<?php
// 获取当前分类页面对应的分类ID
$current_cat_id = get_queried_object_id();

$lastposts = get_posts(array(
    'posts_per_page' => 5,
    'cat' => $current_cat_id // 追加当前分类筛选条件
));

if ($lastposts)
{
    foreach ($lastposts as $post):
        setup_postdata($post); ?>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        
    <?php
    endforeach;
    wp_reset_postdata();
}
?>

其中get_queried_object_id()是WordPress官方内置函数,在分类、标签等存档页面调用时会自动返回当前页面对应的分类/标签ID,无需手动指定,适配所有分类页面。


内容的提问来源于stack exchange,提问作者Shundo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:36:04