如何获取WordPress自定义分类法dtcast的所有术语关联图片?
WordPress自定义分类法术语关联特色图片获取方案
你使用的Advanced Category and Custom Taxonomy Image插件会将术语关联的图片ID存储在术语元表中,你可以通过两种方式获取到对应图片,修改后的代码如下:
方案1:调用插件原生函数(兼容性最优)
插件自带封装好的获取图片的函数,不用关心底层存储逻辑,后续插件升级也不会受影响:
<?php $tax = 'dtcast'; // 自定义分类法名称 $default_image = 'https://你的默认图片地址'; // 没有设置图片时显示的默认图 // 获取分类法下所有术语 $terms = get_terms( $tax, [ 'hide_empty' => false, // 显示无内容的术语 ]); // 循环遍历术语 foreach( $terms as $term ) { // 获取术语关联的图片地址,第二个参数为图片尺寸,可根据需求修改为thumbnail、medium、full或自定义尺寸 $term_image = get_advcat_taxonomy_image_url( $term->term_id, 'full' ); // 没有设置图片时使用默认图 $term_image = $term_image ? $term_image : $default_image; // 输出内容:包含图片+术语名称的链接 echo '<div class="term-item">'; // 输出图片,alt属性设置为术语名称 echo '<img src="'. esc_url($term_image) .'" alt="'. esc_attr($term->name) .'">'; // 输出原有术语名称链接 echo '<strong class="danny-vien"><a href="'. esc_url(get_term_link( $term )) .'">'. esc_html($term->name) .'</a></strong>'; echo '</div>'; } ?>
方案2:直接读取术语元字段获取(适合需要自定义逻辑的场景)
如果不想调用插件函数,也可以直接读取插件存储的图片ID元字段,用WordPress原生函数获取图片地址:
<?php $tax = 'dtcast'; // 自定义分类法名称 $default_image = 'https://你的默认图片地址'; // 没有设置图片时显示的默认图 // 获取分类法下所有术语 $terms = get_terms( $tax, [ 'hide_empty' => false, // 显示无内容的术语 ]); // 循环遍历术语 foreach( $terms as $term ) { // 获取插件存储的图片ID $image_id = get_term_meta( $term->term_id, 'category_image_id', true ); // 根据图片ID获取图片地址,第二个参数为图片尺寸 $term_image = $image_id ? wp_get_attachment_image_url( $image_id, 'full' ) : $default_image; // 输出内容和方案1一致 echo '<div class="term-item">'; echo '<img src="'. esc_url($term_image) .'" alt="'. esc_attr($term->name) .'">'; echo '<strong class="danny-vien"><a href="'. esc_url(get_term_link( $term )) .'">'. esc_html($term->name) .'</a></strong>'; echo '</div>'; } ?>
注意事项
- 代码中的图片尺寸可以根据你的需求修改,WordPress默认自带
thumbnail(缩略图)、medium(中图)、large(大图)、full(原图)四个尺寸,也可以填写你自己注册的自定义图片尺寸 - 建议所有输出的动态内容都加
esc_url、esc_attr、esc_html等转义函数,提升站点安全性
内容的提问来源于stack exchange,提问作者DannyTuan
相关产品推荐
相关产品推荐

