在我的循环中,我当前正在输出一个类别,一篇文章被指定为纯文本。它被用作我的标记中的类名(用户看不到),但如果一篇文章被分配了多个类别,我下面的代码只输出一个类别,我如何让所有类别(文章分配给它的类别)显示为类名?
<?php //begin new query
$project_query = new WP_Query(\'cat=14,15,16,17,18,19\');?>
<?php while ($project_query->have_posts()) : $project_query->the_post(); $do_not_duplicate = $post->ID; ?>
<!-- I NEED CATEGORY NAMES TO APEEAR AS CLASS NAME ON THIS LINE BELOW -->
<div class="element <?php $category = get_the_category(); echo $category[0]->category_nicename; ?> sports">
<div class="element_inner">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<img src="<?php the_field(\'leading_image\') ?>" />
<div class="meta"><?php the_title(); ?></div>
</a>
</div>
<div class="four-col-shadow"></div>
</div>
<?php endwhile; wp_reset_query(); ?>
最合适的回答,由SO网友:Stephen Harris 整理而成
这是所有分类法的通用解决方案。在回路内部使用(否则更换get_the_ID()
带有post ID):
$taxonomy = \'category\';
$terms = get_the_terms( get_the_ID(), $taxonomy );
if( $terms ){
$term_slugs = array_map(\'esc_attr\',wp_list_pluck( $terms, \'slug\'));
$class = implode(\' \', $term_slugs);
}else{
$class = \'no-term\';
}