WordPress教程

WordPress 获取指定页面ID的父页面函数

阿里云

get_post_ancestors()函数的作用是获取指定页面的父页面 ID,函数会以数组的形式返回指定页面的所有父页面 ID,比如一个三级页面,通过该 WordPress 函数返回的数组包含了二级页面 ID 和一级页面的 ID,其中数组第一个值的 ID 为直系父页面,最后一个值的 ID 为最顶级的父页面。

  1. <?php get_post_ancestors( $post ) ?>
也想出现在这里?联系我们
创客主机

参数说明

$post – 页面 ID 或页面对像

返回值

数组,如果没有父页面,则返回空数组,如果有父页面,则返回所有父页面 ID 数组
1、获取当前页面的父页面 ID

  1. <?php 
  2. 	global $post;
  3. 	$pageArray = get_post_ancestors($post->ID);
  4. 	echo $pageArray[0];
  5. ?>

2、获取最高级页面别名作为 body 的样式名

PS:以下示例代码在 twenty eleven 子主题的 header.php 文件

  1. <?php
  2. /* Get the Page Slug to Use as a Body Class, this will only return a value on pages! */
  3. $class = '';
  4. /* is it a page */
  5. if( is_page() ) { 
  6. 	global $post;
  7.         /* Get an array of Ancestors and Parents if they exist */
  8. 	$parents = get_post_ancestors( $post->ID );
  9.         /* Get the top Level page->ID count base 1, array base 0 so -1 */ 
  10. 	$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
  11. 	/* Get the parent and set the $class with the page slug (post_name) */
  12.         $parent = get_post( $id );
  13. 	$class = $parent->post_name;
  14. }
  15. ?>
  16.  
  17. <body <?php body_class( $class ); ?>>

3、获取父页面的 Meta 数据

以下代码是获取顶级页面中名称为“body_class”的自定义字段的值作为 body 的样式名

  1. <?php
  2. $class = '';
  3. if( is_page() ) {
  4. 	global $post;
  5. 	$parents = get_post_ancestors( $post->ID );
  6. 	$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
  7. 	$class = get_post_meta( $id, 'body_class', true );
  8. }
  9. ?>
  10. <body <?php body_class( $class ); ?>>

4、获取顶级页面的特色图像

以下代码是获取顶级页面的特色图像

  1. <?php
  2. global $post;
  3. $parents = get_post_ancestors( $post->ID );
  4. /* Get the ID of the 'top most' Page if not return current page ID */
  5. $id = ($parents) ? $parents[count($parents)-1]: $post->ID;
  6. if(has_post_thumbnail( $id )) {
  7. 	get_the_post_thumbnail( $id, 'thumbnail');
  8. }
  9. ?>

WordPress 获取指定页面 ID 的父页面函数

已有 196 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!