我正在寻找一种更好的方法来输出循环中帖子的类别列表。这就是我所拥有的:
<?php $category = get_the_category(); ?>
<a href="<?php echo get_category_link($category[0]->cat_ID); ?>"><?php echo $category[0]->cat_name; ?></a>,
<a href="<?php echo get_category_link($category[0]->cat_ID); ?>"><?php echo $category[1]->cat_name;?></a>,
<a href="<?php echo get_category_link($category[0]->cat_ID); ?>"><?php echo $category[2]->cat_name;?></a>
显然这不是很好,因为如果没有三个类别我会得到多余的逗号。循环和输出类别的最佳方法是什么,中间有逗号?
非常感谢
答案 0 :(得分:1)
你可以使用
<?php echo get_the_category_list(); ?>
将以此格式输出所有内容(作为列表):
<ul class="post-categories">
<li>
<a href="http:myblog.com/category/business" title="View all posts in Business" rel="category tag">Business</a>
</li>
</ul>
您可以阅读有关here
的更多信息或者如果您使用
<?php wp_get_post_categories( $post_id, $args ); ?>
它会将类别ID输出为数组
类似
$post_categories = wp_get_post_categories( $post->ID );
foreach($post_categories as $c){
$cat = get_category( $c );
$link = get_category_link( $c );
echo "<a href='{$link}'>{$cat->name}</a>";
}
可能会更适合你
您可以阅读有关此功能的更多信息here
答案 1 :(得分:1)
此代码应该有效:
<?php
$separator = ',';
$output = '';
$categories = get_the_category();
if ($categories){
foreach($categories as $category) {
$output .= '<a href="'.get_category_link( $category->term_id ).'" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '">'.$category->cat_name.'</a>'.$separator;
}
echo trim($output, $separator);
}
?>
上get_the_category()
功能的更多信息和示例