WordPress如何获取文章顶级分类的目录信息

发布时间:

因为 WordPress 数据库结构设计的原因,有时候就级别多一点就需要循环了获取,如果分类目录层级多了,要想获取到顶级目录的信息还真的需要折腾一下,而且也查询过 WordPress 并没有提供相关的函数来获取,所有自己干脆自己来封装了一个 WordPress 获取文章所在目录的顶级目录信息。

WordPress如何获取文章顶级分类的目录信息

WordPress 获取分类目录的函数可以分为两个大类,一个是根据文章 ID 来获取当前文章的分类目录信息 get_the_category(),一个是根据分类目录 ID 类获取分类目录信息 get_category()。利用这两个函数就可以实现我想要的功能了,代码如下:

/* 获取顶级分类目录信息
 * term_id name slug description
 * cat_ID category_description cat_name
 */
function fanly_basic_get_category_root( $pid, $meta='term_id' ){
	$cats = get_the_category($pid)[0] ?? '';
	while(@$cats->category_parent){ //有父分类时循环
		$cats = get_category(@$cats->category_parent);
	}
	return $cats->$meta ?? '';
}

其实从优化的角度来说,文章目录的 URL 深度太长了不好,而对于 WordPress 使用了 category 来做固定链接时,分类目录用来分类的嵌入尽可能的不要太多层,当然个人人为使用一层就已经足够,如果使用到二级目录那么二次开发 WordPress 来固定只有一级目录。