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

创建一个自定义分类法需要使用 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创建你的第一个分类法页面

相关文章

我们有时候在定制WORDPRESS主题的时候,由于菜单样式的要求我...
很多朋友在做wordpree主题制作的时候会经常遇到一个问题,那...
wordpress后台的模块很多,但并不是每个都经常用到。介绍几段...
从WordPress4.2版本开始,如果我们在MYSQL5.1版本数据中导出...
很多网友会遇到这样一个问题,就是WordPress网站上传图片、附...
对于经常要在文章中出现代码的IT相关博客,安装一个代码高亮...