如何通过ID获取另一篇文章的get_queried_object以查找父级文章的父级?
获取当前查询对象的父级ID并判断是否存在上级父级
你的思路方向是对的,但代码里的变量使用有误,正确的实现方式如下:
直接调用get_queried_object()获取当前页面的查询对象(比如分类、自定义分类等),再通过对象的parent属性拿到父级ID,最后判断这个ID是否大于0,就能知道是否存在上级父级。
完整代码示例
// 获取当前查询的对象 $current_object = get_queried_object(); // 先确保对象存在且是分类类型(可选,避免非分类页面报错) if ($current_object && is_a($current_object, 'WP_Term')) { $parent_id = $current_object->parent; // 判断是否存在上级父级 if ($parent_id > 0) { // 存在上级父级,可在此处理逻辑 echo '当前分类的父级ID是:' . $parent_id; } else { // 没有上级父级,是顶级分类 echo '当前是顶级分类,无上级父级'; } }
关键说明
get_queried_object()无需额外对象调用,直接执行就能获取当前页面的对应对象(分类页返回WP_Term对象,文章页返回WP_Post对象)- 检查
$current_object的类型是为了避免在非分类页面(比如首页、文章页)执行代码时出现错误 - 顶级分类的
parent属性值为0,因此判断$parent_id > 0即可确定是否有上级父级
内容的提问来源于stack exchange,提问作者Yaroslav
相关产品推荐
相关产品推荐

