如何使用WordPress的taxonomy API创建自定义分类法?

2024-12-27 57 0

在WordPress中,使用taxonomy API创建自定义分类法涉及几个步骤。以下是一个基本的指南,帮助你通过代码在WordPress中创建自定义分类法:

步骤 1: 定义钩子(Hook)

首先,你需要定义一个钩子(通常是 init),在这个钩子中,你将调用 register_taxonomy 函数来创建自定义分类法。

步骤 2: 调用 register_taxonomy

init 钩子中,使用 register_taxonomy 函数来注册你的自定义分类法。以下是该函数的基本参数:

  • $taxonomy:自定义分类法的标识符(通常是小写且仅包含字母、数字和下划线)。
  • $object_type:与此分类法关联的对象类型(例如,'post' 或 'page')。
  • $args:一个包含分类法选项的数组。

以下是一个示例代码,展示了如何创建一个名为“Genre”的自定义分类法,并与“book”自定义文章类型关联:

function create_custom_taxonomy() {
    $labels = array(
        'name' => _x( 'Genres', 'taxonomy general name' ),
        'singular_name' => _x( 'Genre', 'taxonomy singular name' ),
        'search_items' =>  __( 'Search Genres' ),
        'all_items' => __( 'All Genres' ),
        'parent_item' => __( 'Parent Genre' ),
        'parent_item_colon' => __( 'Parent Genre:' ),
        'edit_item' => __( 'Edit Genre' ),
        'update_item' => __( 'Update Genre' ),
        'add_new_item' => __( 'Add New Genre' ),
        'new_item_name' => __( 'New Genre Name' ),
        'menu_name' => __( 'Genres' ),
    );

    $args = array(
        'hierarchical' => true,
        'labels' => $labels,
        'show_ui' => true,
        'show_admin_column' => true,
        'query_var' => true,
        'rewrite' => array( 'slug' => 'genre' ),
    );

    register_taxonomy( 'genre', array( 'book' ), $args );
}
add_action( 'init', 'create_custom_taxonomy', 0 );

在这个例子中,'book' 是假设你已经注册了一个名为“book”的自定义文章类型。如果你还没有注册,你需要先注册一个自定义文章类型,然后才能将其与分类法关联。

步骤 3: 将代码添加到主题的 functions.php 文件中

将上述代码复制并粘贴到你的WordPress主题的 functions.php 文件中。如果你正在使用一个子主题,请确保将代码添加到正确的 functions.php 文件中。

步骤 4: 保存并刷新

保存 functions.php 文件,然后刷新你的WordPress管理后台。你应该能在左侧菜单中看到一个名为“Genres”的新菜单项,在那里你可以添加和管理你的自定义分类法。

确保在创建自定义分类法之前,你已经注册了与之关联的自定义文章类型。如果还没有,你需要先创建自定义文章类型。

相关文章

在WordPress主题中,如何使用 get_header(), get_footer(), 和 get_sidebar() 函数来包含模板部分?
在WordPress主题开发中,如何使用 the_custom_logo() 函数来显示自定义标志?
在WordPress插件中,如何使用 wp_enqueue_script() 和 wp_enqueue_style() 来注册和排队脚本和样式?
如何使用WordPress的 get_option() 和 update_option() 函数来获取和更新选项?
如何使用WordPress的WP_Customize_Manager类来自定义主题定制器?
在WordPress主题中,如何使用wp_reset_postdata()来避免查询冲突?