Title: _get_custom_object_labels
Published: April 25, 2014
Last modified: May 20, 2026

---

# _get_custom_object_labels( object $data_object, array $nohier_vs_hier_defaults ): object

## In this article

 * [Parameters](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#wp--skip-link--target)

This function’s access is marked private. This means it is not intended for use 
by plugin or theme developers, only by core. It is listed here for completeness.

Builds an object with custom-something object (post type, taxonomy) labels out of
a custom-something object

## 󠀁[Parameters](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#parameters)󠁿

 `$data_object`objectrequired

A custom-something object.

`$nohier_vs_hier_defaults`arrayrequired

Hierarchical vs non-hierarchical default labels.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#return)󠁿

 object Object containing labels for the given custom-something object.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#source)󠁿

    ```php
    function _get_custom_object_labels( $data_object, $nohier_vs_hier_defaults ) {
    	$data_object->labels = (array) $data_object->labels;

    	if ( isset( $data_object->label ) && empty( $data_object->labels['name'] ) ) {
    		$data_object->labels['name'] = $data_object->label;
    	}

    	if ( ! isset( $data_object->labels['singular_name'] ) && isset( $data_object->labels['name'] ) ) {
    		$data_object->labels['singular_name'] = $data_object->labels['name'];
    	}

    	if ( ! isset( $data_object->labels['name_admin_bar'] ) ) {
    		$data_object->labels['name_admin_bar'] = $data_object->labels['singular_name'] ?? $data_object->name;
    	}

    	if ( ! isset( $data_object->labels['menu_name'] ) && isset( $data_object->labels['name'] ) ) {
    		$data_object->labels['menu_name'] = $data_object->labels['name'];
    	}

    	if ( ! isset( $data_object->labels['all_items'] ) && isset( $data_object->labels['menu_name'] ) ) {
    		$data_object->labels['all_items'] = $data_object->labels['menu_name'];
    	}

    	if ( ! isset( $data_object->labels['archives'] ) && isset( $data_object->labels['all_items'] ) ) {
    		$data_object->labels['archives'] = $data_object->labels['all_items'];
    	}

    	$defaults = array();
    	foreach ( $nohier_vs_hier_defaults as $key => $value ) {
    		$defaults[ $key ] = $data_object->hierarchical ? $value[1] : $value[0];
    	}

    	$labels              = array_merge( $defaults, $data_object->labels );
    	$data_object->labels = (object) $data_object->labels;

    	return (object) $labels;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/post.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/post.php#L2195)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/post.php#L2195-L2231)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#related)󠁿

| Used by | Description | 
| [get_taxonomy_labels()](https://developer.wordpress.org/reference/functions/get_taxonomy_labels/)`wp-includes/taxonomy.php` |

Builds an object with all taxonomy labels out of a taxonomy object.

  | 
| [get_post_type_labels()](https://developer.wordpress.org/reference/functions/get_post_type_labels/)`wp-includes/post.php` |

Builds an object with all post type labels out of a post type object.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/_get_custom_object_labels/?output_format=md#changelog)󠁿

| Version | Description | 
| [3.0.0](https://developer.wordpress.org/reference/since/3.0.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2F_get_custom_object_labels%2F)
before being able to contribute a note or feedback.