A WordPress-centric search engine for devs and theme authors

get_post_type_labels › WordPress Function

get_post_type_labels ( $post_type_object )
  • private
  • (object|WP_Post_Type) $post_type_object Post type object.
    Required: Yes
  • (object) Object with all the labels as member variables.
Defined at:
Change Log:
  • 4.3.0
  • 4.4.0
  • 4.6.0
  • 4.7.0
  • 5.0.0
  • 5.7.0
  • 5.8.0

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

Accepted keys of the label array in the post type object: - name - General name for the post type, usually plural. The same and overridden by $post_type_object->label. Default is 'Posts' / 'Pages'. - singular_name - Name for one object of this post type. Default is 'Post' / 'Page'. - add_new - Default is 'Add New' for both hierarchical and non-hierarchical types. When internationalizing this string, please use a {@link gettext context} matching your post type. Example: _x( 'Add New', 'product', 'textdomain' );. - add_new_item - Label for adding a new singular item. Default is 'Add New Post' / 'Add New Page'. - edit_item - Label for editing a singular item. Default is 'Edit Post' / 'Edit Page'. - new_item - Label for the new item page title. Default is 'New Post' / 'New Page'. - view_item - Label for viewing a singular item. Default is 'View Post' / 'View Page'. - view_items - Label for viewing post type archives. Default is 'View Posts' / 'View Pages'. - search_items - Label for searching plural items. Default is 'Search Posts' / 'Search Pages'. - not_found - Label used when no items are found. Default is 'No posts found' / 'No pages found'. - not_found_in_trash - Label used when no items are in the Trash. Default is 'No posts found in Trash' / 'No pages found in Trash'. - parent_item_colon - Label used to prefix parents of hierarchical items. Not used on non-hierarchical post types. Default is 'Parent Page:'. - all_items - Label to signify all items in a submenu link. Default is 'All Posts' / 'All Pages'. - archives - Label for archives in nav menus. Default is 'Post Archives' / 'Page Archives'. - attributes - Label for the attributes meta box. Default is 'Post Attributes' / 'Page Attributes'. - insert_into_item - Label for the media frame button. Default is 'Insert into post' / 'Insert into page'. - uploaded_to_this_item - Label for the media frame filter. Default is 'Uploaded to this post' / 'Uploaded to this page'. - featured_image - Label for the featured image meta box title. Default is 'Featured image'. - set_featured_image - Label for setting the featured image. Default is 'Set featured image'. - remove_featured_image - Label for removing the featured image. Default is 'Remove featured image'. - use_featured_image - Label in the media frame for using a featured image. Default is 'Use as featured image'. - menu_name - Label for the menu name. Default is the same as name. - filter_items_list - Label for the table views hidden heading. Default is 'Filter posts list' / 'Filter pages list'. - filter_by_date - Label for the date filter in list tables. Default is 'Filter by date'. - items_list_navigation - Label for the table pagination hidden heading. Default is 'Posts list navigation' / 'Pages list navigation'. - items_list - Label for the table hidden heading. Default is 'Posts list' / 'Pages list'. - item_published - Label used when an item is published. Default is 'Post published.' / 'Page published.' - item_published_privately - Label used when an item is published with private visibility. Default is 'Post published privately.' / 'Page published privately.' - item_reverted_to_draft - Label used when an item is switched to a draft. Default is 'Post reverted to draft.' / 'Page reverted to draft.' - item_scheduled - Label used when an item is scheduled for publishing. Default is 'Post scheduled.' / 'Page scheduled.' - item_updated - Label used when an item is updated. Default is 'Post updated.' / 'Page updated.' - item_link - Title for a navigation link block variation. Default is 'Post Link' / 'Page Link'. - item_link_description - Description for a navigation link block variation. Default is 'A link to a post.' / 'A link to a page.' Above, the first default value is for non-hierarchical post types (like posts) and the second one is for hierarchical post types (like pages). Note: To set labels used in post type admin notices, see the {@see 'post_updated_messages'} filter.


function get_post_type_labels( $post_type_object ) {
	$nohier_vs_hier_defaults = WP_Post_Type::get_default_labels();

	$nohier_vs_hier_defaults['menu_name'] = $nohier_vs_hier_defaults['name'];

	$labels = _get_custom_object_labels( $post_type_object, $nohier_vs_hier_defaults );

	$post_type = $post_type_object->name;

	$default_labels = clone $labels;

	 * Filters the labels of a specific post type.
	 * The dynamic portion of the hook name, `$post_type`, refers to
	 * the post type slug.
	 * Possible hook names include:
	 *  - `post_type_labels_post`
	 *  - `post_type_labels_page`
	 *  - `post_type_labels_attachment`
	 * @since 3.5.0
	 * @see get_post_type_labels() for the full list of labels.
	 * @param object $labels Object with labels for the post type as member variables.
	$labels = apply_filters( "post_type_labels_{$post_type}", $labels );

	// Ensure that the filtered labels contain all required default values.
	$labels = (object) array_merge( (array) $default_labels, (array) $labels );

	return $labels;