在 WordPress 主循环中,可以通过 get_the_category() 获得某个文章的分类信息,但是这些信息却是随机的,而且 get_the_category() 函数只接受一个 $id 参数,并没有排序的参数。
这里我们就需要实现自定义排序方法:
取一个数和剩下的数进行依次比较,如果这个数比剩下的数小,就交换两个数的值,反之不交换值,那么第一次循环下来,这个数就是这几个数中最大的数,然取第二个数和剩下的数比较,依次类推,当循环结束后,这些数已经按照从大到小的顺序排列了。
将下列函数放到 functions.php 文件中:
function get_post_cat(){
global $post;
$cat_arr = get_the_category($post->ID);
$new_cat = array();
$cat_count = count($cat_arr);
for($i=0; $i<$cat_count; $i++){
for($j=$cat_count-1; $j>$i; $j--){
if($cat_arr[$i]->term_id > $cat_arr[$j]->term_id){
$tem_cat = $cat_arr[$i];
$cat_arr[$i] = $cat_arr[$j];
$cat_arr[$j] = $tem_cat;
}
}
}
return $cat_arr;
}
在需要调用的地方调用:
echo get_post_cat()