在Wordpress中返回一个类别的名称
我有一个自定义帖子类型的循环,所有工作都很好,除非我无法返回该帖子分配给它的实际类别名称。在Wordpress中返回一个类别的名称
我有以下代码:
<?php $posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'portfolio',
'orderby' => 'menu_order',
'order' => 'ASC'
));
if($posts) {
foreach($posts as $post) {
setup_postdata($post);
?>
<div>
<div class="mix <?php get_cat_name(); ?>" ><img src="<?php the_field('portfolio_image'); ?>" alt=""></div> <!-- ACF -->
</div>
<?php
}
}
wp_reset_postdata();
?>
这只是我曾尝试包括回声特林所有WP食品功能之一。我想我的问题是别的吗? 非常感谢提前。
回答:
根据codex的id是要求这个方法(https://codex.wordpress.org/Function_Reference/get_cat_name)。退出ID不起作用。
一个解决方案是使用get_the_category($postId)
来检索您的帖子的类别(https://codex.wordpress.org/Function_Reference/get_the_category)。你可以离开了这里的帖子ID
POST_ID (整数)(可选)的帖子ID。 默认值:$ post-> ID(当前帖子ID)
请注意,该方法返回一个对象 - 而不是类别名称。你可以试试下面的代码,看看它的工作:
<?php $category = get_the_category();
echo $category[0]->cat_name;
?>
回答:
试试这个代码
<?php $terms = get_the_terms($post->ID, 'TAXONOMY'); if ($terms && ! is_wp_error($terms)) :
$term_slugs_arr = array();
foreach ($terms as $term) {
$term_slugs_arr[] = $term->name;
}
$terms_slug_str = join(" ", $term_slugs_arr);
endif;
echo $terms_slug_str;?>
回答:
替换代码
从
get_cat_name();
到
$categories = get_the_terms($post->ID,'custom-texonomy-name'); $cat = key($categories);
echo $categories[$cat]->name;
以上是 在Wordpress中返回一个类别的名称 的全部内容, 来源链接: utcz.com/qa/262411.html