WordPress函数详解——register_taxonomy($taxonomy, $object_type, $args)
register_taxonomy($taxonomy, $object_type, $args)函数用于实现自定义分类以及自定义标签,以下是其所有参数以及具体含义:
- $taxonomy 字符串型,必需,分类法的名称,用英文哦
- $object_type 数组或字符串,必需,分类法所对应的文章类型
- $args--可选,配置参数
- label - 标记为翻译的分类标准的多个描述性名称。默认值:由$labels-> name覆盖
- labels
- name- 分类学的通用名,通常是复数。与$tax->标签相同并覆盖。
- 默认是_x( 'Post Tags', 'taxonomy general name' )或_x( 'Categories', 'taxonomy general name' )。
- singular_name - 该分类法的一个对象的名称。
- 默认是_x( 'Post Tag', 'taxonomy singular name' )或_x( 'Category', 'taxonomy singular name' )。
- menu_name-菜单名称文本。该字符串是给出菜单项的名称。如果未设置,则默认为名称标签的值。
- all_items-所有项目文本。默认是__( 'All Tags' )或__( 'All Categories' )
- edit_item-编辑项目文本。默认是__( 'Edit Tag' )或__( 'Edit Category' )
- view_item-视图项目文本,默认为__( 'View Tag' )或__( 'View Category' )
- update_item-更新项目文本。默认是__( 'Update Tag' )或__( 'Update Category' )
- add_new_item-添加新项目文本。默认是__( 'Add New Tag' )或__( 'Add New Category' )
- new_item_name-新项目名称文本。默认是__( 'New Tag Name' )或__( 'New Category Name' )
- parent_item-父项文本。此字符串不用于非分层分类,例如帖子标签。默认为null或__( 'Parent Category' )
- parent_item_colon- 同样的parent_item,但是冒号:到底是null,__( 'Parent Category:' )
- search_items-搜索项目文本。默认是__( 'Search Tags' )或__( 'Search Categories' )
- popular_items-流行的项目文字。此字符串不用于分级分类。默认值为__( 'Popular Tags' )或null
- separate_items_with_commas-在分类法元数据框中使用逗号分隔的单独项。此字符串不用于分级分类。默认为__( 'Separate tags with commas' )或,否则为null
- add_or_remove_items-当禁用JavaScript时,添加或删除项目文本并在元框中使用。此字符串不用于分级分类。默认值为__( 'Add or remove tags' )或null
- choose_from_most_used-从分类法中使用的最常用的文本中选择。此字符串不用于分级分类。默认值为__( 'Choose from the most used tags' )或null
- not_found-当没有标签可用时,通过点击“从最常用的标签中选择”显示的文本(4.2+) - 当没有项目时,术语列表中使用的文本用于分类。默认是__( 'No tags found.' )或__( 'No categories found.' )
- public-分类法是否通过管理界面或前端用户公开使用。`$ public_queryable`,
- `$ show_ui`和`$ show_in_nav_menus`的默认设置从`$ public`继承。默认值:true
- publicly_queryable-分类法是否可公开查询。默认值:$ public
- show_ui-是否生成用于管理此分类法的默认UI。
- 默认值:如果没有设置,默认值为public参数。从3.5开始,将其设置为false,以附加分类法将隐藏UI。
- show_in_menu-在管理菜单中显示分类的位置。show_ui必须是真的。
- 默认值:show_ui参数的值
- show_in_nav_menus-true使此分类法可用于导航菜单中的选择。默认值:如果没有设置,默认值为public参数
- show_in_rest-是否将分类法包含在REST API中。默认值:false
- rest_base-更改REST API路由的基本URL。默认值:$ taxonomy
- rest_controller_class-REST API Controller类名。默认值:WP_REST_Terms_Controller
- show_tagcloud-是否允许标签云小部件使用此分类。默认值:如果未设置,则默认为show_ui参数的值
- show_in_quick_edit-是否在快速/批量编辑面板中显示分类法。(自4.2起可用)默认值:如果未设置,则默认为show_ui参数的值
- meta_box_cb-为元框显示提供回调函数名称。(自3.8起可用)默认值:null
- show_admin_column-是否允许自动创建关联的post-types表上的分类列。(自3.5起可用)默认值:false
- description-包含分类法的描述。默认值:“”
- hierarchical-这种分类法是否像分类一样分层次(具有后代),也可以不像标签那样层次化。默认值:false
- update_count_callback-当关联的$ object_type(如post)的计数被更新时,将被调用的函数名称。很像一个钩子。
- 默认值:无 -
- query_var-False可禁用query_var,设置为使用自定义query_var作为字符串,而不是默认值为$ taxonomy,分类法的“名称”。
- 默认值:$ taxonomy
- rewrite-设置为false以防止自动URL重写“漂亮的永久链接”。
- 传递$ args数组来覆盖永久链接的默认URL设置,如下所示:
- 默认值:true
- ' slug' - 用作漂亮的永久链接文本(即/ tag /) - 默认为$ taxonomy(分类名称slug)
- ' with_front' - 允许前缀为前缀的固定链接 - 默认为true
- ' hierarchy' - true或false允许分层urls(在3.1版中实现) - 默认为false
- ' ep_mask' - (对于美丽的永久链接必需)为此分类法分配端点掩码 - 默认为EP_NONE。如果您没有指定EP_MASK,则非常有用的固定链接将无法正常工作。有关更多信息,请参阅这个使WordPress插件端点总结。
- 注意:更改后可能需要刷新重写规则。您可以通过转到“固定链接设置”页面并重新保存规则(
- 您不需要更改它们)或通过调用$ wp_rewrite-> flush_rules()来手动执行。创建分类后,
- 您应该只刷新一次规则,而不是每次插件/主题加载时。
- capabilities-此分类的功能数组。
- 默认值:无
- ' manage_terms' - 'manage_categories'
- ' edit_terms' - 'manage_categories'
- ' delete_terms' - 'manage_categories'
- ' assign_terms' - 'edit_posts'
- sort-此分类法是否应该记住术语添加到对象的顺序。
- 默认值:无
示例:
<?php
$labels = array(
'name' => '产品分类',
'singular_name' => '产品分类',
'search_items' => '搜索产品' ,
'all_items' => '所有产品' ,
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => '编辑产品' ,
'update_item' => '更新产品' ,
'add_new_item' => '添加产品' ,
'new_item_name' => '新产品',
'separate_items_with_commas' => '' ,
'add_or_remove_items' => '添加或删除',
'choose_from_most_used' => '从经常使用的类型中选择',
'menu_name' => '产品分类',
);
register_taxonomy(
'products',
array('product'),
array(
'labels' => $labels,
'hierarchical' => true,
'show_ui' => true,
'query_var' => true,
)
);
?>
前台调用
自定义分类法的分类列表页面模板文件是taxonomy.php或taxonomy-{taxonomy_slug}.php,taxonomy.php是所有自定义分类法默认调用的模板文件,taxonomy-{taxonomy_slug}.php则是指定自定义分类法调用的模板文件,比如本教程中创建的自定义分类法products,使用taxonomy-products.php文件即可指定调用。
TIPS
强调一点,添加过新的自定义分类之后一定要更新下固定连接,只需要点击保存设置就行,不然前台是调用不出来的。
来自:
- http://www.diyzhan.cn/register_post_type/
- http://www.xuxiaoke.com/wpfunc/141.html
