如何获取WordPress中‘Webinar’分类下的10篇最新文章?
如何修改WordPress代码获取指定分类下的最新文章?
你的代码目前能正常显示10篇文章,但缺少分类筛选和正确的排序方向设置。要实现获取「Webinar」分类下的10篇最新文章,只需要对$args数组做两处关键修改就行:
- 添加分类筛选参数,指定只拉取「Webinar」分类的内容
- 把排序方向从升序(
ASC)改成降序(DESC),这样才能拿到最新发布的文章(原代码是按标题升序,会优先显示旧内容)
修改后的完整代码
<?php $args = array( 'numberposts' => 10, 'order'=> 'DESC', // 改为降序,确保显示最新文章 'orderby' => 'date', // 按发布时间排序,匹配「最新」需求(原代码是按标题排序) 'category_name' => 'webinar' // 填写Webinar分类的别名(slug),注意是小写横线格式 ); $postslist = get_posts( $args ); foreach ($postslist as $post) : setup_postdata($post); ?> <div> <?php the_date(); ?> <br /> <?php the_title(); ?> <?php the_excerpt(); ?> </div> <?php endforeach; wp_reset_postdata(); // 别忘了加这个,避免全局$post变量冲突影响后续代码 ?>
关键参数说明:
category_name:这里要填你「Webinar」分类的别名(slug),不是显示名称。你可以登录WordPress后台,进入「文章」→「分类」,找到Webinar分类查看它的别名(默认是webinar,如果没手动修改过的话)。如果知道分类ID,也可以用cat参数代替,比如'cat' => 5(5是对应分类的ID)。order:改成DESC后,文章会按发布时间从新到旧排序,完全符合你「最新文章」的需求。orderby:原代码是按标题排序,改成date后逻辑更贴合「最新」的要求,确保真正按发布时间筛选。wp_reset_postdata():这是个必要的收尾操作,能重置setup_postdata()修改的全局变量,避免影响后续代码运行。
内容的提问来源于stack exchange,提问作者user13970253




