get_ancestors()获取当前分类/页面/链接的父级节点信息

目录

描述

Returns an array containing the parents of the given object.

get_ancestors() 描述

用法

 <?php get_ancestors$object_id$object_type ); ?> 

Default Usage

 <?php $ancestors get_ancestors6'page' ); ?> 

get_ancestors() 用法

参数

$object_id

(int or string) (必填) The ID of the child object

默认值: None

$object_type

(string) (必填) The name of the object type (page, hierarchical post type, category, or hierarchical taxonomy) in question

默认值: None

get_ancestors() 参数

返回值

(array) 

Array of ancestors from lowest to highest in the hierarchy

get_ancestors() 返回值

示例

Given the following category hierarchy (with IDs):

  • Books (6)
    • Fiction (23)
      • Mystery (208)
/* ----------------------------------
 * wordpress之魂 © http://wphun.com
 * ---------------------------------- */
<?php get_ancestors( 208, 'category' ); ?>

returns:

 Array
(
    [0] => 23
    [1] => 6

Given the a page hierarchy (with IDs):

  • About (447)
    • Child Page (448)
/* ----------------------------------
 * wordpress之魂 © http://wphun.com
 * ---------------------------------- */
<?php get_ancestors( 448, 'page' ); ?>

returns:

  Array
(
    [0] => 447

get_ancestors() 示例

注意

  • Filter: get_ancestors is applied to ancestors array before it is returned.

get_ancestors() 注意

历史

  • 添加于 版本: 3.1.0

get_ancestors() 历史

源文件

get_ancestors() 函数的代码位于 wp-includes/taxonomy.php.

/* ----------------------------------
 * wordpress之魂 © http://wphun.com
 * ---------------------------------- */
/**
 * Get an array of ancestor IDs for a given object.
 *
 * @since 3.1.0
 * @since 4.1.0 Introduced the `$resource_type` argument.
 *
 * @param int    $object_id     Optional. The ID of the object. Default 0.
 * @param string $object_type   Optional. The type of object for which we'll be retrieving
 *                              ancestors. Accepts a post type or a taxonomy name. Default empty.
 * @param string $resource_type Optional. Type of resource $object_type is. Accepts 'post_type'
 *                              or 'taxonomy'. Default empty.
 * @return array An array of ancestors from lowest to highest in the hierarchy.
 */
function get_ancestors( $object_id = 0, $object_type = '', $resource_type = '' ) {
	$object_id = (int) $object_id;

	$ancestors = array();

	if ( empty( $object_id ) ) {

		/** This filter is documented in wp-includes/taxonomy.php */
		return apply_filters( 'get_ancestors', $ancestors, $object_id, $object_type, $resource_type );
	}

	if ( ! $resource_type ) {
		if ( is_taxonomy_hierarchical( $object_type ) ) {
			$resource_type = 'taxonomy';
		} elseif ( post_type_exists( $object_type ) ) {
			$resource_type = 'post_type';
		}
	}

	if ( 'taxonomy' === $resource_type ) {
		$term = get_term($object_id, $object_type);
		while ( ! is_wp_error($term) && ! empty( $term->parent ) && ! in_array( $term->parent, $ancestors ) ) {
			$ancestors[] = (int) $term->parent;
			$term = get_term($term->parent, $object_type);
		}
	} elseif ( 'post_type' === $resource_type ) {
		$ancestors = get_post_ancestors($object_id);
	}

	/**
	 * Filter a given object's ancestors.
	 *
	 * @since 3.1.0
	 * @since 4.1.1 Introduced the `$resource_type` parameter.
	 *
	 * @param array  $ancestors     An array of object ancestors.
	 * @param int    $object_id     Object ID.
	 * @param string $object_type   Type of object.
	 * @param string $resource_type Type of resource $object_type is.
	 */
	return apply_filters( 'get_ancestors', $ancestors, $object_id, $object_type, $resource_type );
}

get_ancestors() 源文件

相关