WordPress Taxonomy

作者:游鱼思


在 WordPress 中,分类法(Taxonomy)是一个用于组织内容的通用术语。

WordPress系统中已经自带了两个Taxonomy:Tag、Category

Tag:也即是不带层级的Taxonomy

Category:带层级的Taxonomy

Taxonomy 都是可多选的,是否仅单选由UI控件来控制。

分类法(Taxonomy)

自定义分类法(Custom Taxonomies)

分类法和自定义分类法的区别

什么时候使用自定义分类法

实施示例

function create_recipe_taxonomies() {
    // Cooking Methods
    register_taxonomy('cooking_method', 'recipe', array(
        'label' => 'Cooking Methods',
        'rewrite' => array('slug' => 'cooking-method'),
        'hierarchical' => true,
    ));
    
    // Meal Times
    register_taxonomy('meal_time', 'recipe', array(
        'label' => 'Meal Times',
        'rewrite' => array('slug' => 'meal-time'),
        'hierarchical' => true,
    ));
    
    // Diet Types
    register_taxonomy('diet_type', 'recipe', array(
        'label' => 'Diet Types',
        'rewrite' => array('slug' => 'diet-type'),
        'hierarchical' => true,
    ));
    
    // Nutritional Functions
    register_taxonomy('nutritional_function', 'recipe', array(
        'label' => 'Nutritional Functions',
        'rewrite' => array('slug' => 'nutritional-function'),
        'hierarchical' => false,
    ));
    
    // Condition-Specific Diets
    register_taxonomy('condition_specific', 'recipe', array(
        'label' => 'Condition-Specific Diets',
        'rewrite' => array('slug' => 'condition-specific'),
        'hierarchical' => true,
    ));
}
add_action('init', 'create_recipe_taxonomies', 0);

Advanced Custom Fields (ACF) 可以新增、修改自定义分类法。此外,也可以使用以下扩展:

1. Custom Post Type UI (CPT UI)

这是一个非常流行且易于使用的插件,用于创建和管理自定义分类法和自定义文章类型。

2. TaxoPress

TaxoPress 插件允许您在 WordPress 中创建、管理和优化分类法。

3. Pods – Custom Content Types and Fields

Pods 是一个功能强大的插件,可以创建和管理自定义内容类型和分类法。

4. Toolset Types

Toolset Types 插件允许您创建自定义文章类型、分类法和字段。

使用 ACF 与自定义分类法的集成

使用 ACF 为自定义分类法添加字段

示例

如果已经使用 CPT UI 创建了一个名为 "cooking_method" 的自定义分类法,可以使用以下步骤在 ACF 中为它添加字段:

  1. 在 ACF 中创建一个新的字段组,例如 "Cooking Method Details"。
  2. 添加一个字段,例如 "Cooking Duration"(烹饪时间)。
  3. 在 "Location" 规则中,选择 "Taxonomy Term" 并选择 "cooking_method"。

编辑某个烹饪方法的分类项时,就可以看到并填写这些自定义字段。

通过结合使用这些插件,您可以轻松创建和管理自定义分类法,并为这些分类法添加自定义字段,以满足您网站的需求。

FAQ

1、通过ACF创建 taxonomy(通过 advance - Meta Box 选项可控制展示样式),关联到文章类型后,该文章类型在新增内容时,编辑器右侧可以创建该taxonomy的item。

但是问题是:如何创建taxonomy,却又不让编辑人员新增,并且展示已创建的item为radio button?

解决方案1:

解决方案2:不用ACF,用 Meta box插件。

参考:

ACF: How do I create terms for a custom taxonomy, and prevent an editor from creating new ones : r/Wordpress (reddit.com)

2、ACF有个Bug:当ACF创建的Taxonomy的 分类法键 与 关联到的文章类型的 文章类型键 相同时,在 创建/编辑该文章时,将不会展示已经添加的分类项。

![](/img/user/Z-attach/Pasted image 20240719143044.png)