wordpress添加自定义分类函数:register_taxonomy()

2021年1月6日 飞飞 阅读(1.26K)
知识付费主题,优惠促销中:xx-blog主题

创建一个自定义分类法需要使用 register_taxonomy() 函数,这个函数接收 3 个参数

语法

<?php register_taxonomy($taxonomy, $post_type, $args); ?>

$post_type用来指定对应的post_type分类,就是register_post_type注册的分类

参数

$taxonomy:分类法的名称。这个名称不应包含中文,因为它不是给用户看的,而是类似于 ID 的作用

$post_type:分类法用于哪些文章类型。WordPress 的文章(post)默认已经有了两个分类法(分类和标签),你可以把这个分类法用于自带的文章类型(post、page、attachment、revision 和 nav_menu_item)和自定义文章类型,有三种填法:
只用于一个文章类型,列如:$post_type = ‘post’
用于多个文章类型,例如:$post_type = array(‘post’, ‘page’)
不应用给任何文章类型,例如:$post_type = null

$arg:参考下面的详细解释

例子

先上例子,跟着例子看参数比较容易理解

<?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,
)
);
?>

$args详细参数

label:分类法显示给用户的名字,可用使用中文和其它字符
labels:显示给用户的名词。这个数组用来设置显示给用户的关键文字,如果不填 WordPress 会自动给你设置好(参考下面的labels参数)
public:是否公开,如果公开会生成前台存档页面
show_ui:是否在后台的侧边管理菜单显示
show_in_nav_menus:是否在菜单页面里添加一个条款
show_tagcloud:分类法是否显示标签云的部件
meta_box_cb:显示在文章编辑器的分类法选择板块是什么形式
show_admin_column:是否显示在后台文章列表的数据列上
hierarchical:显示在文章编辑器的分类法选择板块是什么形式。设置成 True 则为分类形式(多选框),False 则为标签形式(文本框和添加按钮)【注意:分类法的管理界面像 “分类” 还是 “标签” 取决于你的 hierarchical 参数】
update_count_callback:分类法发生变化时的回调函数
query_var:查询存档页面的关键字,默认是分类法名(ID)。最好保持默认
rewrite:伪静态规则。设置成 False 将禁用伪静态;还可以设置一些元素,比如 “slug”
capabilities:分类法权限设置。最好保持默认
sort:查询分类法文章时的排序
_builtin:这是内置的分类法还是自定义分类法。最好保持默认或设置成 False。这个参数只有 WordPress 核心才有用

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的值

前台调用

自定义分类法的分类列表页面模板文件是taxonomy.php或taxonomy-{taxonomy_slug}.php,taxonomy.php是所有自定义分类法默认调用的模板文件,taxonomy-{taxonomy_slug}.php则是指定自定义分类法调用的模板文件,比如本教程中创建的自定义分类法products,使用taxonomy-products.php文件即可指定调用。

特别注意

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

接下来如何创建分类法页面可以参考:wordpress创建你的第一个分类法页面


关注微信公众号『xx主题网

第一时间了解最新网络动态
关注博主不迷路~

未经允许不得转载:xx主题网 » wordpress添加自定义分类函数:register_taxonomy()
分享到:

评论抢沙发

要发表评论,您必须先

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

扫码关注微信公众号

扫描关注xx主题网