WordPress函数register_taxonomy用于注册一个新的分类法或修改一个现有的分类法,如果修改现有分类法对象,$object_type的值将覆盖。
1 | register_taxonomy( string $taxonomy, array|string $object_type, array|string $args = array() ) |
函数参数
$taxonomy
字符串
分类法名称,不超过32个字符
$object_type
数组或字符串
与分类法关联的对象
$args
数组或字符串,可用值如下:
labels
数组
默认Tag类型不支持层级,Category支持层级,可用值参考get_taxonomy_labels()函数
description
字符串
用于分类法的简要描述
public
布尔值
分类法是否允许通过管理界面或前端使用
publicly_queryable
布尔值
分类法是否可以公开查询,默认值继承$public
hierarchical
布尔值,默认值:false
分类法是否支持层级
show_ui
布尔值,默认值:true
是否在后台管理中显示
show_in_menu
布尔值,默认值:true
是否在后台菜单中显示
show_in_nav_menus
布尔值,默认值:true
是否在导航菜单中显示
show_in_rest
布尔值
是否在REST API中使用,设置为true将在块编辑器中可用
rest_base
字符串,默认值:$taxonomy
更改REST API的基础路径
rest_controller_class
字符串,默认值:WP_REST_Terms_Controller
REST API控制器类名
show_tagcloud
布尔值,默认值:true
是否在标签云小工具中显示
show_in_quick_edit
布尔值,默认值:true
是否在快速/批量编辑模块中显示
show_admin_column
布尔值,默认值:false
是否在分类法post类型的列表显示该分类法列
meta_box_cb
布尔值或回调函数
如果设置为false则不显示Meta Box,默认post_categories_meta_box()用于分层分类,post_tags_meta_box()用于非分层分类。
meta_box_sanitize_cb
回调函数
用于过滤meta_box_cb指定的回调函数数据,如果未定义回调,则根据meta_box_cb的值确定适当的回调。
capabilities
数组
此分类法的权限
- manage_terms:默认manage_categories;
- edit_terms:默认manage_categories;
- delete_terms:默认manage_categories;
- assign_terms:默认edit_posts。
rewrite
布尔值或数组,默认值:true,使用$taxonomy作为slug
分类法的重写处理,要指定重写规则,可以使用以下值:
- slug:自定义别名;
- with_front:布尔值,默认为true,固定链接是否应该以WP_Rewrite::$front开头;
- hierarchical:布尔值,默认为false,是否使用分层重写标记;
- ep_mask:整数,默认为EP_NONE,指定端点掩码。
query_var
字符串或布尔值
设置分类法查询变量,默认为$taxonomy
update_count_callback
回调函数
像hook一样工作,当计数更新时调用
default_term
字符串或数组
用于分类法的默认分类:
- name:默认分类的名称;
- slug:默认分类的别名;
- description:默认分类的描述。
_builtin
布尔值,默认值:false
如果为true,该分类法为内置分类法,仅供内部使用
扩展阅读
register_taxonomy()函数位于:wp-includes/taxonomy.php
相关函数:
- create_initial_taxonomies()