如何在循环中显示自定义文章类型的所有分类及ACF创建的分类缩略图
实现自定义文章类型分类循环并显示ACF分类缩略图
以下是适配你提供的布局的WordPress代码实现方案:
1. 前置确认
- 已为自定义文章类型注册对应分类法(比如分类法slug为
custom_taxonomy,需替换为你实际的分类法名称) - 已通过ACF为该分类法创建图片类型的字段,字段名假设为
category_thumbnail(替换为你实际的字段名)
2. 完整代码实现
<div class="row"> <?php // 获取自定义分类法的所有分类,替换custom_taxonomy为你的分类法slug $terms = get_terms(array( 'taxonomy' => 'custom_taxonomy', 'hide_empty' => false, // 显示空分类,如需隐藏改为true )); if (!empty($terms) && !is_wp_error($terms)) { foreach ($terms as $term) { // 获取ACF分类缩略图字段值(图片ID) $thumbnail_id = get_field('category_thumbnail', $term); // 转换为图片URL,这里使用medium尺寸,可替换为thumbnail/large/full等 $thumbnail_url = wp_get_attachment_image_url($thumbnail_id, 'medium'); // 获取分类归档页面链接 $term_link = get_term_link($term); ?> <div class="col-lg-2 col-md-3"> <div class="c-brintons-box"> <div class="c-brintons-img"> <?php if ($thumbnail_url) : ?> <img src="<?php echo esc_url($thumbnail_url); ?>" alt="<?php echo esc_attr($term->name); ?>"> <?php else : ?> <!-- 无缩略图时显示默认图,路径按需调整 --> <img src="img/default-thumb.jpg" alt="<?php echo esc_attr($term->name); ?>"> <?php endif; ?> </div> <h3><?php echo esc_html($term->name); ?></h3> <a href="<?php echo esc_url($term_link); ?>"></a> </div> </div> <?php } } ?> </div>
3. 关键代码说明
get_terms():读取指定分类法的所有分类,hide_empty参数控制是否展示无关联文章的分类get_field('category_thumbnail', $term):ACF针对分类的字段调用规则,传入分类对象即可获取对应字段值wp_get_attachment_image_url():将ACF返回的图片ID转换为可直接使用的URL,支持指定WordPress预设的图片尺寸- 所有输出内容用
esc_*系列函数转义,避免XSS安全问题
4. 注意事项
- 务必将代码中的
custom_taxonomy替换为你实际注册的自定义分类法slug - 将
category_thumbnail替换为你在ACF中创建的分类缩略图字段名称 - 默认图路径根据你的项目结构调整,确保路径有效
内容的提问来源于stack exchange,提问作者Sayan Dey
相关产品推荐
相关产品推荐

