register_taxonomy()函数

鲍成龙 1.1K 0

register_taxonomy()函数为自定义的Post type添加自定义分类功能。

语法结构

<?php register_taxonomy($taxonomy, $post_type, $args); ?> //为自定义的Post type添加自定义分类功能

参数

$taxonomy添加的类的名称

$post_type注册的自定义类型

$labels的详细参数

‘name’ – 分类的通用名称,通常为复数
‘singular_name’ – 此分类法的一个对象的名称
‘search_items’ – 搜索项目文字。默认为__(’搜索标签’)或__(’搜索类别’)
‘popular_items’ – 热门项目文字。默认为__(’热门标签’)或null
‘all_items’ – 所有项目文本。默认为__(’所有标签’)或__(’所有类别’)
‘parent_item’ – 父项文本。此字符串不用于非分层分类法,例如帖子标记。默认值为null或__(’父类别’)
‘parent_item_colon’ – 与结果相同parent_item,但:结尾为冒号,__(’父类别:’)
‘edit_item’ – 编辑项目文本。默认为__(’编辑标签’)或__(’编辑类别’)
‘update_item’ – 更新项目文本。默认为__(’更新标签’)或__(’更新类别’)
‘add_new_item’ – 添加新项目文本。默认为__(’添加新标签’)或__(’添加新类别’)
‘new_item_name’ – 新项目名称文本。默认为__(’新标签名称’)或__(’新类别名称’)
‘separate_items_with_commas’ – 分类项元框中使用逗号文本的单独项目。此字符串不用于分层分类法。默认值为__(’带逗号的单独标签’)或null
‘add_or_remove_items’ – 添加或删除项目文本,并在禁用JavaScript时在元框中使用。此字符串不用于分层分类法。默认值为__(’添加或删除标记’)或null
‘choose_from_most_used’ – 从分类法元框中使用的最常用文本中进行选择。此字符串不用于分层分类法。默认值为__(’从最常用的标签中选择’)或null
‘menu_name’ – 菜单名称文字。此字符串是提供菜单项的名称。默认为name的值

$args的详细参数

public- 否应在管理UI中公开此分类

  1. show_ui – 是否生成用于管理此分类的默认UI。默认值:如果未设置,则默认为public参数的值
  2. show_in_nav_menus – true使此分类在导航菜单中可供选择,默认值:如果未设置,则默认为public参数的值
  3. show_tagcloud – 是否允许Tag Cloud小部件使用此分类,默认值:如果未设置,则默认为show_ui参数的值
  4. 增加几个参数类型。分别是
    show_in_rest ,rest_baserest_controller_class。第一个参数可以理解为是否在 REST API 中显示,所以参数值必须是 true;第二个参数可以理解为通过哪个 REST API 显示数据,所以参数值最好是自定义文章类型的别名,且必须是英文或是拼音,比如:bbs;第三个参数可以理解为采用哪个 REST API 的控制类,所以参数值必须是使用文章的控制类:WP_REST_Posts_Controller。加上这三个参数项,基本上自定义文章类型的 REST API 就创建成功了。
<?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

强调一点,添加过新的自定义分类之后一定要更新下固定连接,只需要点击保存设置就行,不然前台是调用不出来的。

 

发表评论 取消回复
表情 图片 链接 代码

分享