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

在WordPress循环内获取自定义文章类型stm_media_gallery的分类名称

解决方案

没问题,我来帮你搞定这个需求!下面是修改后的完整WP_Query循环代码,能同时显示自定义文章类型的标题和对应的分类名称:

<?php
// 初始化自定义文章类型查询
$gallery_query = new WP_Query( array(
    'post_type' => 'stm_media_gallery',
    'posts_per_page' => -1
) );

// 检查是否有文章
if( $gallery_query->have_posts() ) : 
    while( $gallery_query->have_posts() ) : $gallery_query->the_post(); 
        // 获取当前文章的分类信息
        // 注意:如果你的自定义文章类型用的是**自定义分类法**,请把下面的'category'替换成你的分类法slug(比如'stm_gallery_categories')
        $gallery_categories = get_the_terms( get_the_ID(), 'category' );
?>

<div class="gallery-item">
    <!-- 显示文章标题 -->
    <h3><?php the_title(); ?></h3>
    <!-- 显示分类名称 -->
    <div class="gallery-categories">
        <?php
        if( $gallery_categories && !is_wp_error( $gallery_categories ) ) :
            foreach( $gallery_categories as $category ) :
                echo '<span class="category-tag">' . esc_html( $category->name ) . '</span>';
            endforeach;
        endif;
        ?>
    </div>
</div>

<?php 
    endwhile;
    // 重置文章数据,避免影响后续查询
    wp_reset_postdata();
else :
    // 如果没有文章显示提示
    echo '<p>No gallery items found.</p>';
endif;
?>

关键细节说明:

  • 获取分类信息:用get_the_terms()函数,参数分别是当前文章ID和分类法slug。如果你的自定义文章类型关联的是自己创建的分类法(不是默认的文章分类),一定要把第二个参数改成你创建分类法时设置的slug,否则会获取不到分类。
  • 错误处理:加入了!is_wp_error()判断,避免因为分类不存在或者获取失败导致页面报错。
  • 安全输出:用esc_html()包裹分类名称,防止XSS攻击,保证输出安全。
  • 重置查询:循环结束后调用wp_reset_postdata(),恢复全局$post变量,避免影响后续的WordPress查询逻辑。

如果你的自定义分类法slug不确定,可以在后台对应分类管理菜单下查看,或者用get_taxonomies()函数列出所有可用的分类法来确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:13:53