get_post_ancestors()函数的作用是获取指定页面的父页面 ID,函数会以数组的形式返回指定页面的所有父页面 ID,比如一个三级页面,通过该 WordPress 函数返回的数组包含了二级页面 ID 和一级页面的 ID,其中数组第一个值的 ID 为直系父页面,最后一个值的 ID 为最顶级的父页面。
- <?php get_post_ancestors( $post ) ?>
参数说明
$post – 页面 ID 或页面对像
返回值
数组,如果没有父页面,则返回空数组,如果有父页面,则返回所有父页面 ID 数组
1、获取当前页面的父页面 ID
- <?php
- global $post;
- $pageArray = get_post_ancestors($post->ID);
- echo $pageArray[0];
- ?>
2、获取最高级页面别名作为 body 的样式名
PS:以下示例代码在 twenty eleven 子主题的 header.php 文件
- <?php
- /* Get the Page Slug to Use as a Body Class, this will only return a value on pages! */
- $class = '';
- /* is it a page */
- if( is_page() ) {
- global $post;
- /* Get an array of Ancestors and Parents if they exist */
- $parents = get_post_ancestors( $post->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;
- }
- ?>
- <body <?php body_class( $class ); ?>>
3、获取父页面的 Meta 数据
以下代码是获取顶级页面中名称为“body_class”的自定义字段的值作为 body 的样式名
- <?php
- $class = '';
- if( is_page() ) {
- global $post;
- $parents = get_post_ancestors( $post->ID );
- $id = ($parents) ? $parents[count($parents)-1]: $post->ID;
- $class = get_post_meta( $id, 'body_class', true );
- }
- ?>
- <body <?php body_class( $class ); ?>>
4、获取顶级页面的特色图像
以下代码是获取顶级页面的特色图像
- <?php
- global $post;
- $parents = get_post_ancestors( $post->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');
- }
- ?>
文章連結:https://www.wuyanshuo.cn/684.html
更新時間:2022年4月3日
1、本站所有資源均不添加推廣檔案或浮水印,壓縮包內若有廣告檔案和浮水印請勿輕易相信。
2、本站資源均為兩層壓縮,第一層7z(尾碼若為wys,請自行修改為7z)有解壓密碼; 第二層zip或cbz,無解壓密碼,可直接使用漫畫類軟件程式查看; 詳情可參攷解壓教程。
3、本站大部分內容均收集於網絡! 若內容侵犯到您的權益,請發送郵件至:admin#wysacg.top我們將第一時間處理! 資源所需價格並非資源售賣價格,是收集、整理、編輯詳情以及本站運營的適當補貼,並且本站不提供任何免費技術支援。 所有資源僅限於參攷和學習,版權歸原作者所有!