我在while循环中显示我的自定义帖子类型“项目”。但是所有帖子都位于不同的类别中,因此我想显示每个项目的类别名称,但它不会输出类别名称。
这是循环:
if ( $query->have_posts() ) {
while ($query->have_posts()) {
$query->the_post(); ?>
<?php if( has_post_thumbnail() ) { ?>
<div>
<img src="<?php echo the_post_thumbnail_url('home-project-thumb'); ?>" style="width: 100%; height: auto; max-height: 625px;">
<div style="background-image:url('<?php echo get_template_directory_uri(); ?>/assets/images/projectslider-<?php echo $color; ?>.svg'); background-repeat: no-repeat; background-size: cover;" class="projectslider-item">
<div class="projectslider-content"><?php $categories = get_the_category(); $cat_name = $categories[0]->cat_name; ?>
<a href="<?php the_permalink(); ?>"><h2><?php the_title(); ?></h2></a>
<p <?php if ( is_page(95) ) { ?> style="color: white!important;" <?php } ?>><?php the_excerpt(); ?></p><br>
<a href="<?php the_permalink(); ?>" class="projectslider-button projectslider-button-purple">Lees meer</a>
</div>
</div>
</div>
<?php } ?> <?php } } wp_reset_postdata(); ?>
我在循环中添加了以下代码:
<?php $categories = get_the_category(); $cat_name = $categories[0]->cat_name; ?>
答案 0 :(得分:2)
如果您使用的是自定义分类法,则需要get_the_terms()
:
$terms = get_the_terms(get_the_ID(), 'category');
$term_name = $terms[0]->name;
category
是您的自定义分类法的子名称。
PS:如果您使用默认的WordPress category
,则get_the_terms()
也可以使用(类似于上面的示例)。
答案 1 :(得分:0)
您似乎只是在为变量分配名称,您需要将其“回显”为输出:
<?php
$categories = get_the_category();
$cat_name = $categories[0]->cat_name;
echo $cat_name;
?>