WordPress at a glance
function is not described

_get_custom_object_labels() WP 3.0.0

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

This is an internal function for using it by WP core itself. It's not recommended to use this function in your code.

No Hooks.

Return

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

Usage

_get_custom_object_labels( $object, $nohier_vs_hier_defaults );
$object(object) (required)
A custom-something object.
$nohier_vs_hier_defaults(array) (required)
Hierarchical vs non-hierarchical default labels.

Changelog

Since 3.0.0 Introduced.

Code of _get_custom_object_labels() WP 5.7.1

<?php
function _get_custom_object_labels( $object, $nohier_vs_hier_defaults ) {
	$object->labels = (array) $object->labels;

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

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

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

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

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

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

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

	return (object) $labels;
}