函数原型
register_post_type( string $post_type, array|string $args = array() ): WP_Post_Type|WP_Error
函数描述
Registers a post type.
是否弃用
未弃用
函数参数
-
$post_type
string
Required - Post type key. Must not exceed 20 characters and may only contain lowercase alphanumeric characters, dashes, and underscores. See sanitize_key() .
-
$args
array|string
Optional - Array or string of arguments for registering a post type.
labelstringName of the post type shown in the menu. Usually plural.
Default is value of $labels['name'].labelsstring[]An array of labels for this post type. If not set, post labels are inherited for non-hierarchical types and page labels for hierarchical ones. See get_post_type_labels() for a full list of supported labels.descriptionstringA short descriptive summary of what the post type is.publicboolWhether a post type is intended for use publicly either via the admin interface or by front-end users. While the default settings of $exclude_from_search, $publicly_queryable, $show_ui, and $show_in_nav_menus are inherited from $public, each does not rely on this relationship and controls a very specific intention.
Default false.hierarchicalboolWhether the post type is hierarchical (e.g. page). Default false.exclude_from_searchboolWhether to exclude posts with this post type from front end search results. Default is the opposite value of $public.publicly_queryableboolWhether queries can be performed on the front end for the post type as part of parse_request(). Endpoints would include: * ?post_type={post_type_key} * ?{post_type_key}={single_post_slug} * ?{post_type_query_var}={single_post_slug} If not set, the default is inherited from $public.show_uiboolWhether to generate and allow a UI for managing this post type in the admin. Default is value of $public.show_in_menubool|stringWhere to show the post type in the admin menu. To work, $show_ui must be true. If true, the post type is shown in its own top level menu. If false, no menu is shown. If a string of an existing top level menu ('tools.php'or'edit.php?post_type=page', for example), the post type will be placed as a sub-menu of that.
Default is value of $show_ui.show_in_nav_menusboolMakes this post type available for selection in navigation menus.
Default is value of $public.show_in_admin_barboolMakes this post type available via the admin bar. Default is value of $show_in_menu.show_in_restboolWhether to include the post type in the REST API. Set this to true for the post type to be available in the block editor.rest_basestringTo change the base URL of REST API route. Default is $post_type.rest_namespacestringTo change the namespace URL of REST API route. Default is wp/v2.rest_controller_classstringREST API controller class name. Default is ‘WP_REST_Posts_Controller’.menu_positionintThe position in the menu order the post type should appear. To work, $show_in_menu must be true. Default null (at the bottom).menu_iconstringThe URL to the icon to be used for this menu. Pass a base64-encoded SVG using a data URI, which will be colored to match the color scheme — this should begin with'data:image/svg+xml;base64,'. Pass the name of a Dashicons helper class to use a font icon, e.g.
'dashicons-chart-pie'. Pass'none'to leave div.wp-menu-image empty so an icon can be added via CSS. Defaults to use the posts icon.capability_typestring|arrayThe string to use to build the read, edit, and delete capabilities.
May be passed as an array to allow for alternative plurals when using this argument as a base to construct the capabilities, e.g.
array('story','stories'). Default'post'.capabilitiesstring[]Array of capabilities for this post type. $capability_type is used as a base to construct capabilities by default.
See get_post_type_capabilities() .map_meta_capboolWhether to use the internal default meta capability handling.
Default false.supportsarrayCore feature(s) the post type supports. Serves as an alias for calling add_post_type_support() directly. Core features include'title','editor','comments','revisions','trackbacks','author','excerpt','page-attributes','thumbnail','custom-fields', and'post-formats'.
Additionally, the'revisions'feature dictates whether the post type will store revisions, and the'comments'feature dictates whether the comments count will show on the edit screen. A feature can also be specified as an array of arguments to provide additional information about supporting that feature.
Example:array( 'my_feature', array( 'field' => 'value' ) ).
Default is an array containing'title'and'editor'.register_meta_box_cbcallableProvide a callback function that sets up the meta boxes for the edit form. Do remove_meta_box() and add_meta_box() calls in the callback. Default null.taxonomiesstring[]An array of taxonomy identifiers that will be registered for the post type. Taxonomies can be registered later with register_taxonomy() or register_taxonomy_for_object_type() .has_archivebool|stringWhether there should be post type archives, or if a string, the archive slug to use. Will generate the proper rewrite rules if $rewrite is enabled. Default false.rewritebool|arrayTriggers the handling of rewrites for this post type. To prevent rewrite, set to false.
Defaults to true, using $post_type as slug. To specify rewrite rules, an array can be passed with any of these keys:slugstringCustomize the permastruct slug. Defaults to $post_type key.with_frontboolWhether the permastruct should be prepended with WP_Rewrite::$front.
Default true.feedsboolWhether the feed permastruct should be built for this post type.
Default is value of $has_archive.pagesboolWhether the permastruct should provide for pagination. Default true.ep_maskintEndpoint mask to assign. If not specified and permalink_epmask is set, inherits from $permalink_epmask. If not specified and permalink_epmask is not set, defaults to EP_PERMALINK.
query_varstring|boolSets the query_var key for this post type. Defaults to $post_type key. If false, a post type cannot be loaded at ?{query_var}={post_slug}. If specified as a string, the query ?{query_var_string}={post_slug} will be valid.can_exportboolWhether to allow this post type to be exported. Default true.delete_with_userboolWhether to delete posts of this type when deleting a user.- If true, posts of this type belonging to the user will be moved to Trash when the user is deleted.
- If false, posts of this type belonging to the user will *not* be trashed or deleted.
- If not set (the default), posts are trashed if post type supports the
'author'feature. Otherwise posts are not trashed or deleted.
Default null.
templatearrayArray of blocks to use as the default initial state for an editor session. Each item should be an array containing block name and optional attributes.template_lockstring|falseWhether the block template should be locked if $template is set.- If set to
'all', the user is unable to insert new blocks, move existing blocks and delete blocks. - If set to
'insert', the user is able to move existing blocks but is unable to insert new blocks and delete blocks.
Default false.
- If set to
_builtinboolFOR INTERNAL USE ONLY! True if this post type is a native or "built-in" post_type. Default false._edit_linkstringFOR INTERNAL USE ONLY! URL segment to use for edit link of this post type. Default'post.php?post=%d'.
More Arguments from get_post_type_capabilities( … $args )
Post type registration arguments.
Default:
array()
函数返回值
WP_Post_Type|WP_Error The registered post type object on success, WP_Error object on failure.
函数位置
File: wp-includes/post.php.
函数源码
$obj = get_post_type_object( 'your_post_type_name' ); echo esc_html( $obj->description );
源码链接
变更日志
| Version | Description |
|---|---|
| 5.9.0 | The rest_namespace argument was added. |
| 5.3.0 | The supports argument will now accept an array of arguments for a feature. |
| 5.0.0 | The template and template_lock arguments were added. |
| 4.7.0 | Introduced show_in_rest, rest_base and rest_controller_class arguments to register the post type in REST API. |
| 4.6.0 | Post type object returned is now an instance of WP_Post_Type. |
| 4.4.0 | The show_ui argument is now enforced on the post type listing screen and post editing screen. |
| 3.0.0 | The show_ui argument is now enforced on the new post screen. |
| 2.9.0 | Introduced. |

