WordPress如何获取指定作者的所有文章?
修复后的代码实现
原代码存在两个核心问题:一是get_posts的参数名错误,指定作者需用author而非test;二是仅获取了文章数据,未输出你需要的标题、描述和特色图片信息。以下是完整的可用代码:
<?php if(isset($authors) && !empty($authors)) { echo "<ul>"; foreach($authors as $author) { // 正确配置参数,获取该作者所有已发布文章 $posts = get_posts(array( 'author' => $author->ID, 'posts_per_page' => -1, 'post_status' => 'publish' )); // 循环输出每篇文章的目标信息 foreach($posts as $post) { setup_postdata($post); $featured_img = get_the_post_thumbnail_url($post->ID, 'full'); ?> <li> <h3><?php the_title(); ?></h3> <p><?php the_excerpt(); ?></p> <?php if($featured_img): ?> <img src="<?php echo esc_url($featured_img); ?>" alt="<?php the_title_attribute(); ?>"> <?php endif; ?> </li> <?php } wp_reset_postdata(); } echo "</ul>"; } ?>
关键说明
- 替换参数名:用
author指定作者ID,这是WordPressget_posts函数的标准参数 - 全量获取:
posts_per_page => -1确保拉取该作者的所有已发布文章 - 模板函数复用:通过
setup_postdata初始化文章数据,可直接调用the_title()、the_excerpt()这类便捷模板函数 - 特色图片处理:用
get_the_post_thumbnail_url获取图片URL,添加存在性判断避免生成空的图片标签 - 数据重置:
wp_reset_postdata()用于重置全局文章数据,防止干扰后续查询逻辑
内容的提问来源于stack exchange,提问作者tomhuckle
相关产品推荐
相关产品推荐

