get_post_type_labels()
云策文档标注
概述
get_post_type_labels() 函数用于从文章类型对象构建包含所有标签的对象。它处理默认标签和自定义标签,并支持通过过滤器动态修改标签。
关键要点
- 函数接受一个 post_type_object 参数,类型为 object 或 WP_Post_Type,必需。
- 返回一个对象,包含所有标签作为成员变量,如 name、singular_name、add_new 等。
- 标签数组包含多个键,如 name(通用名称)、singular_name(单数名称)、add_new(添加新项标签)等,每个都有默认值,非层级和层级文章类型默认值不同。
- 使用 apply_filters("post_type_labels_{$post_type}", $labels) 钩子过滤特定文章类型的标签。
- 函数内部调用 WP_Post_Type::get_default_labels() 和 _get_custom_object_labels() 来生成标签。
代码示例
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 ) ) {
$labels->template_name = sprintf( __( 'Single item: %s' ), $post_type_object->labels->singular_name );
}
$post_type = $post_type_object->name;
$default_labels = clone $labels;
$labels = apply_filters( "post_type_labels_{$post_type}", $labels );
$labels = (object) array_merge( (array) $default_labels, (array) $labels );
return $labels;
}注意事项
- 要设置文章类型管理通知中使用的标签,请参考 'post_updated_messages' 过滤器。
- 获取文章类型标签和其他注册参数时,建议使用 get_post_type_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 Post’ / ‘Add Page’.add_new_item– Label for adding a new singular item. Default is ‘Add Post’ / ‘Add 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 asname.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.
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. |
Skip to note 2 content
Aurovrata Venet
To get a post type labels and other registered parameters, use the
get_post_type_object()function instead.