get_post_ancestors()函数的作用是获取指定页面的父页面 id,函数会以数组的形式返回指定页面的所有父页面 id,比如一个三级页面,通过该 wordpress 函数返回的数组包含了二级页面 id 和一级页面的 id,其中数组第一个值的 id 为直系父页面,最后一个值的 id 为最顶级的父页面。
参数说明
$post – 页面 id 或页面对像
返回值
数组,如果没有父页面,则返回空数组,如果有父页面,则返回所有父页面 id 数组
1、获取当前页面的父页面 id
id);
echo $pagearray[0];
?>
2、获取最高级页面别名作为 body 的样式名
ps:以下示例代码在 twenty eleven 子主题的 header.php 文件
id );
/* get the top level page->id count base 1, array base 0 so -1 */
$id = ($parents) ? $parents[count($parents)-1]: $post->id;
/* get the parent and set the $class with the page slug (post_name) */
$parent = get_post( $id );
$class = $parent->post_name;
}
?>
>
3、获取父页面的 meta 数据
以下代码是获取顶级页面中名称为“body_class”的自定义字段的值作为 body 的样式名
id );
$id = ($parents) ? $parents[count($parents)-1]: $post->id;
$class = get_post_meta( $id, 'body_class', true );
}
?>
>
4、获取顶级页面的特色图像
以下代码是获取顶级页面的特色图像
id );
/* get the id of the 'top most' page if not return current page id */
$id = ($parents) ? $parents[count($parents)-1]: $post->id;
if(has_post_thumbnail( $id )) {
get_the_post_thumbnail( $id, 'thumbnail');
}
?>