W3cubDocs

/WordPress

get_post_type_labels( object|WP_Post_Type $post_type_object ): object

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

Description

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 – Label for adding a new item. Default is ‘Add New’ / ‘Add New’.
  • 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_trashed – Label used when an item is moved to Trash. Default is ‘Post trashed.’ / ‘Page trashed.’
  • 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 ‘post_updated_messages’ filter.

Parameters

$post_type_objectobject|WP_Post_Typerequired
Post type object.

Return

object Object with all the labels as member variables.

Source

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 );

	if ( ! isset( $post_type_object->labels->template_name ) && isset( $post_type_object->labels->singular_name ) ) {
			/* translators: %s: Post type name. */
			$labels->template_name = sprintf( __( 'Single item: %s' ), $post_type_object->labels->singular_name );
	}

	$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;
}

Hooks

apply_filters( “post_type_labels_{$post_type}”, object $labels )

Filters the labels of a specific post type.

Changelog

Version Description
6.7.0 Restored pre-6.4.0 defaults for the add_new label and updated documentation.
Updated core usage to reference add_new_item.
6.6.0 Added the template_name label.
6.4.0 Changed default values for the add_new label to include the type of content.
This matches add_new_item and provides more context for better accessibility.
6.3.0 Added the item_trashed label.
5.8.0 Added the item_link and item_link_description labels.
5.7.0 Added the filter_by_date label.
5.0.0 Added the item_published, item_published_privately, item_reverted_to_draft, item_scheduled, and item_updated labels.
4.7.0 Added the view_items and attributes labels.
4.6.0 Converted the $post_type parameter to accept a WP_Post_Type object.
4.4.0 Added the archives, insert_into_item, uploaded_to_this_item, filter_items_list, items_list_navigation, and items_list labels.
4.3.0 Added the featured_image, set_featured_image, remove_featured_image, and use_featured_image labels.
3.0.0 Introduced.
Show 7 moreShow less

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/get_post_type_labels