WordPress函数register_post_type用于注册自定义文章类型(Custom Post Type)。
语法:
register_post_type( string $post_type, array|string $args = array() )
参数说明:
- $post_type:自定义文章类型的标识符,必填。只能包含小写字母和下划线,长度不超过20个字符。
- $args:自定义文章类型的设置选项,可选。可以是一个数组,也可以是一个字符串。
$args设置选项说明:
- label:自定义文章类型的标签,可以是一个字符串或一个数组。例如:"label" => "Books"。
- labels:自定义文章类型的标签集合,可以是一个数组。例如: "labels" => array( "name" => "Books", "singular_name" => "Book" )。
- description:自定义文章类型的描述,可以是一个字符串。
- public:是否公开显示,可以是一个布尔值,默认为true。
- show_ui:是否在后台显示用户界面,可以是一个布尔值,默认为true。
- show_in_menu:是否显示在WordPress导航菜单中,可以是一个布尔值,默认为true。
- menu_position:在导航菜单位置的排序值,越小越靠前,默认为5。
- menu_icon:在导航菜单中显示的图标,可以是一个URL地址。
- capability_type:用户权限,默认为'post'。
- capabilities:自定义用户权限,可以是一个数组。例如:"capabilities" => array( "create_posts" => "do_not_allow" )。
- supports:支持的功能,可以是一个数组。例如:"supports" => array( "title", "editor", "thumbnail" )。
- taxonomies:支持的分类法,可以是一个数组。例如:"taxonomies" => array( "category", "post_tag" )。
- rewrite:重写规则,可以是一个布尔值或一个数组。例如: "rewrite" => array( "slug" => "books" )。
- has_archive:是否支持存档页面,可以是一个布尔值或一个字符串。例如:"has_archive" => true。
- hierarchical:是否支持层次结构,可以是一个布尔值,默认为false。
- rest_base:REST API的基础路由,默认为$post_type的值。
- exclude_from_search:是否从搜索结果中排除,可以是一个布尔值,默认为false。
- show_in_rest:是否在REST API中显示,可以是一个布尔值,默认为false。
示例:
function create_book_post_type() {
$args = array(
'label' => 'Books',
'public' => true,
'menu_position' => 5,
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
'taxonomies' => array( 'category', 'post_tag' ),
'rewrite' => array( 'slug' => 'books' )
);
register_post_type( 'book', $args );
}
add_action( 'init', 'create_book_post_type' );
这个示例中,我们创建了一个名为"Books"的自定义文章类型,设置了以下选项:
- 公开显示。
- 在后台显示用户界面。
- 在导航菜单中显示。
- 支持标题、正文、缩略图和自定义字段。
- 支持分类法(分类和标签)。
- 重写规则为"books"。
然后,我们使用add_action将创建自定义文章类型的函数绑定到"init"钩子上,使其在WordPress初始化时触发。
0 个评论