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