答案:自定义分类法可为特定内容类型创建专属分类体系,通过register_taxonomy()函数关联自定义文章类型,实现数据的高效组织与管理,提升用户体验和SEO效果。
WordPress分类法,简单来说,就是你给网站内容做分类、打标签的工具。它能帮你把庞杂的信息梳理得井井有条,让访客和搜索引擎都能更容易地找到他们想要的东西,就像图书馆里的 Dewey Decimal System,只不过在你的网站上,你可以完全按自己的需求来定制这套系统。而自定义分类法,则是将这种分类能力提升到新的维度,让你能够为特定的内容类型创建独一无二的分类体系。
解决方案
设置自定义分类法,核心在于使用WordPress提供的
register_taxonomy()
functions.php
首先,你需要定义你的自定义分类法,这包括它的名称、显示标签以及一些行为参数。
function register_my_custom_taxonomy() { // 定义分类法的标签 $labels = array( 'name' => _x( '产品系列', 'taxonomy general name', 'your-text-domain' ), 'singular_name' => _x( '产品系列', 'taxonomy singular name', 'your-text-domain' ), 'search_items' => __( '搜索产品系列', 'your-text-domain' ), 'popular_items' => __( '热门产品系列', 'your-text-domain' ), 'all_items' => __( '所有产品系列', 'your-text-domain' ), 'parent_item' => __( '父级产品系列', 'your-text-domain' ), 'parent_item_colon' => __( '父级产品系列:', 'your-text-domain' ), 'edit_item' => __( '编辑产品系列', 'your-text-domain' ), 'update_item' => __( '更新产品系列', 'your-text-domain' ), 'add_new_item' => __( '添加新产品系列', 'your-text-domain' ), 'new_item_name' => __( '新产品系列名称', 'your-text-domain' ), 'separate_items_with_commas' => __( '用逗号分隔产品系列', 'your-text-domain' ), 'add_or_remove_items' => __( '添加或移除产品系列', 'your-text-domain' ), 'choose_from_most_used' => __( '从最常用产品系列中选择', 'your-text-domain' ), 'not_found' => __( '未找到产品系列', 'your-text-domain' ), 'menu_name' => __( '产品系列', 'your-text-domain' ), ); // 定义分类法的参数 $args = array( 'labels' => $labels, 'hierarchical' => true, // 设置为true表示像分类一样有层级,false则像标签 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, 'rewrite' => array( 'slug' => 'product-series' ), // URL重写规则 ); // 注册分类法,并关联到特定的文章类型 // 这里假设你有一个名为 'product' 的自定义文章类型 register_taxonomy( 'product_series', array( 'product' ), $args ); } add_action( 'init', 'register_my_custom_taxonomy' );
在这个例子中,我们创建了一个名为
product_series
product
hierarchical
true
false
rewrite
yourdomain.com/product-series/summer-collection/
完成这些代码并保存后,刷新你的WordPress后台,你会在
产品
为什么标准分类和标签不够用?何时需要自定义分类法?
我经常听到有人问,WordPress不是已经有“分类”和“标签”了吗,为什么还要搞什么自定义分类法,这不是把简单的事情复杂化吗?说实话,一开始我也是这么想的。但随着项目越来越复杂,我发现默认的分类和标签,它们的局限性很快就显现出来了。
“分类”和“标签”是为通用博客内容设计的,它们很好地服务于文章(post)这种默认内容类型。但如果你的网站不仅仅是博客呢?假设你正在构建一个在线商店,你需要管理“产品”。那么,“产品”本身就应该是一种独立的内容类型(即自定义文章类型)。这时候,如果仍然用默认的“分类”来划分产品,比如“电子产品”、“服装”,那看起来似乎也行。但如果我想进一步细分,比如按“品牌”、“材质”、“适用人群”来分类,这些信息对于“文章”来说毫无意义,对于“产品”却是核心属性。
这就是自定义分类法的价值所在。它让你能够为特定的内容类型创建高度相关的分类体系。比如,为“产品”创建“品牌”分类法,为“电影”创建“导演”或“类型”分类法,为“食谱”创建“菜系”或“食材”分类法。这些分类法与它们所依附的内容类型紧密关联,提供了一种更精确、更有意义的组织方式。在我看来,它不仅提升了用户体验,让用户能更快地找到他们想要的东西,也极大地方便了后台管理,让内容编辑者能更直观地理解和操作数据。更重要的是,对于SEO来说,这种语义化的URL结构和内容组织,能让搜索引擎更好地理解你的网站内容,从而可能提升你的排名。
自定义分类法与自定义文章类型:它们是天生一对吗?
是的,在我多年的WordPress开发经验中,我几乎总是将自定义分类法与自定义文章类型(Custom Post Types, CPT)视为一对不可分割的搭档。它们之间的关系,就像是骨架和肌肉——CPT提供了内容的结构(骨架),而自定义分类法则提供了内容的组织和描述(肌肉和筋络)。

一站式AI品牌设计平台,支持AI Logo设计、品牌VI设计、高端样机设计、AI营销设计等众多种功能


想象一下,你创建了一个名为“图书”的自定义文章类型。如果没有自定义分类法,你的图书内容可能就只能通过默认的“分类”和“标签”来组织。但“图书”有其独特的属性,比如“作者”、“出版社”、“体裁”等。这些属性,用默认的分类和标签来表示,会显得非常别扭,甚至会污染你的全局分类和标签列表。
这时,自定义分类法就派上用场了。你可以为“图书”这个CPT创建:
- 一个名为“作者”的自定义分类法
- 一个名为“出版社”的自定义分类法
- 一个名为“体裁”的自定义分类法
这样,每一本图书在后台编辑时,都会有专门的模块让你选择或添加作者、出版社和体裁,而这些选择只针对“图书”这种内容类型有效。这种强关联性,使得数据结构更加清晰、逻辑更加严谨。在前端展示时,用户可以通过点击“作者”或“体裁”来浏览所有相关的图书,这极大地增强了网站的导航性和内容的发现性。
从技术实现上讲,
register_taxonomy()
register_taxonomy( 'genre', array( 'book', 'movie' ), $args );
管理自定义分类法:后台界面与查询技巧
自定义分类法一旦注册成功,其管理界面和操作方式与WordPress自带的分类和标签非常相似,这大大降低了学习成本。在WordPress后台,你会发现你的自定义文章类型菜单下多了一个子菜单,点击进去就是该分类法的管理页面。在这里,你可以添加新的分类术语(term)、编辑现有术语、删除术语,以及管理它们的层级关系(如果
hierarchical
true
例如,如果你创建了“产品系列”分类法,并在后台添加了“夏季新品”、“冬季特惠”等术语,那么当你编辑一个“产品”文章时,右侧的侧边栏就会出现一个“产品系列”的元数据框,你可以像选择文章分类一样,勾选或添加新的产品系列。
在前端展示自定义分类法的内容时,我们主要依赖
WP_Query
WP_Query
tax_query
$args = array( 'post_type' => 'product', // 查询自定义文章类型 'product' 'posts_per_page' => 10, 'tax_query' => array( array( 'taxonomy' => 'product_series', // 你的自定义分类法名称 'field' => 'slug', // 可以是 'slug', 'name', 'term_id' 'terms' => 'summer-collection', // 你想要查询的术语的slug ), ), ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // 显示产品内容,比如标题、缩略图等 the_title(); the_post_thumbnail(); } wp_reset_postdata(); // 恢复原始文章数据 } else { // 没有找到相关产品 }
这段代码会查询所有属于“summer-collection”这个“产品系列”的“产品”。
tax_query
operator
AND
OR
NOT IN
WP_Query
tax_query
以上就是WordPress分类法是什么?自定义分类怎么设?的详细内容,更多请关注资源网其它相关文章!
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。