register_taxonomy 自定义分类法实例对照图

本文为http://xyx115.com/2020/05/25/register_taxonomy/的姐妹篇。

本文讲述内容如下:

  • 在一个完整注册过程中提供超长超完整的解释文字
  • 在完整注册过程中添加了便于区分识别的序号,并在最后提供实际效果截图。方便对比。

将此代码放在您使用的主题functions.php中(操作方法请移步本站:functions 添加自定义代码方法),即可成功创建一个分类法“部门”,可在帖子或页面菜单下看见具体效果(实际是将分类法同时注册给'user','post','page'三种对象)。

<?php




/*    定义分类名称“部门”    */
define('Custom_User_Category_Name', '部门');
/*    定义分类别名“cat_department”    */
define('Custom_User_Category_Slug', 'cat_department');

/*    调用“register_taxonomy”功能钩子 为“用户”注册分类法“部门”    */
add_action('init', 'nopio_register_user_category_taxonomy');


function nopio_register_user_category_taxonomy()
{
    register_taxonomy(
        Custom_User_Category_Name, //分类名称,在前面已经定义
        array('user','post','page'), //创建分类法的对象,当前采用数组方法,将该分类添加到用户、帖子、页面三个地方。
        array( //分类详细信息
            'description' => '这是一个自定义分类法', 
            // (字符串)关于分类法的简短描述性摘要。在某些主题中可以调用该分类法描述,用于显示分类说明。
            'public' => true, // 布尔值,默认设置$publicly_queryable,通过管理界面还是由前端用户公开使用。$show_ui以及$show_in_nav_menus由继承$public。如果您不想公开公开分类法,则可以使用public和rewrite参数来禁止分类法。您的插件或主题可以在内部使用它,但不会生成自己的URL。
            'publicly_queryable' => true, 
            // 布尔值,分类法是否可公开查询。如果未设置,则默认值继承自$public
            'hierarchical' => false, 
            // 布尔值,是否分层,默认为false,无法选择父级分类,即变成了tag(标签),true则可以选择父级分类,即分类目录。
            'show_ui' => true, 
            // 布尔值,是否在管理员中生成并允许用于管理此分类法中的术语的UI。如果未设置,则默认值继承自$public(默认值为true)
            'show_in_menu' => true, 
            // 布尔值,是否在管理菜单中显示分类法。如果为true,则分类法显示为对象类型菜单的子菜单。如果为false,则不显示菜单。
            //$show_ui必须是真的。如果未设置,则默认值继承自$show_ui(默认值为true)
            'show_in_nav_menus' => true, 
            // 布尔值,使此分类法可在导航菜单中选择。如果未设置,则默认值继承自$public(默认值为true)。
            'show_in_rest' => true, 
            // 布尔值,是否在REST API中包括分类法。将其设置为true可使分类法在块编辑器中可用。(分类面板在块编辑器的侧边栏中是否可见)
            'rest_base' => Custom_User_Category_Slug, 
            // (字符串)更改REST API路由的基本URL。默认值为$ taxonomy。
            'rest_controller_class' => true, 
            // (字符串) REST API控制器类名称。默认值为“ WP_REST_Terms_Controller ”。
            'show_tagcloud' => true, 
            // 布尔值,是否在“标签云”小部件控件中列出分类法。如果未设置,则默认值继承自$show_ui(默认值为true)。
            'show_in_quick_edit' => true, 
            // 布尔值,是否在快速/批量编辑面板中显示分类法。未设置,默认值继承自$show_ui(默认值为true)。
            'show_admin_column' => true, 
            // 布尔值,是否在其帖子类型列表屏幕上显示分类法的列。默认为false。帖子列表出现了该分类法,但用户列表仍没有。
            //'meta_box_cb'        => false,// 布尔值,可调用。为元框显示提供回调函数。如果未设置,则post_categories_meta_box()用于分层分类法,而post_tags_meta_box()用于非分层分类法。如果为false,则不会显示任何meta框。如果为false,则帖子列表页面中,不显示此分类法。true则显示,且自带超链接。目前这一行疑似存在bug。必须注销掉,或者为false/        
            'meta_box_sanitize_cb' => true, 
            // (可调用)回调函数,用于清理从元框保存的分类数据。如果未定义回调,则根据$meta_box_cb的值确定一个合适的回调。
            'query_var' => Custom_User_Category_Slug, 
            //(string | bool)设置此分类法的查询var键。默认$taxonomy密钥。如果为false,则无法在处加载分类法?{query_var}={term_slug}。如果为字符串,则查询?{query_var}={term_slug}将有效。
            'rewrite' => array(
                'slug' => Custom_User_Category_Slug, 
                // 自定义永久结构的分类别名。默认使用$taxonomy的分类别名。
                'with_front' => false, 
                // 布尔值,是否应该在永久结构之前加上WP_Rewrite :: $ front。默认为true。
                'hierarchical' => false 
                //(布尔)是否分层重写标记。默认为false。
            ),
            'labels' => array(
                'name' => __(
                    '17部门分类',
                    '文本域,体现在添加分类页面最左上角的大标题'
                ),
                'singular_name' => __(
                    '16部门分类', 
                    '文本域'
                ),
                'menu_name' => __(
                    '15部门分类', 
                    '文本域'
                ),
                'search_items' => __(
                    '14搜索部门',
                    '文本域,体现在分类列表右上角的搜索框右边,默认为“搜索标签”'
                ),
                'popular_items' => __(
                    '13热门部门分类', 
                    '文本域'
                ),
                'all_items' => __(
                    '12所有部门分类', 
                    '文本域'
                ),
                'parent_item' => __(
                    '11上级部门',
                    '文本域,当hierarchical=true时上级分类的名称'
                ),
                'parent_item_colon' => __(
                    '10上级部门:',
                    '文本域,文本域,当hierarchical=true时上级分类的名称:'
                ),
                'edit_item' => __(
                    '9编辑部门分类',
                    '文本域,体现在编辑分类时最左上角的大标题'
                ),
                'update_item' => __(
                    '8更新部门分类',
                    '文本域'
                ),
                'add_new_item' => __(
                    '7添加新部门分类',
                    '文本域,体现在添加分类页面最左上角的分类名称上面和左下角的添加分类按钮'
                ),
                'new_item_name' => __(
                    '6新部门分类', 
                    '文本域,体现在从新增\编辑帖子位置新增分类时'
                ),
                'separate_items_with_commas' => __(
                    '5用逗号分隔部门分类',
                    '文本域'
                ),
                'add_or_remove_items' => __(
                    '4添加或移除部门分类', 
                    '文本域'
                ),
                'choose_from_most_used' => __(
                    '3从最常用的部门分类中选择',
                    '文本域'
                ),
                'not_found' => __(
                    '2没有找到该部门',
                    '文本域,如果没有任何分类,体现在分类搜索结果中。'
                ),
                'menu_name' => __(
                    '1部门管理',
                    '文本域,体现在后台管理菜单中,最高优先级。'
                )
            ),
            'update_count_callback' => 'update_generic_term_count' // 如果要分类法像标签一样,则必须添加该选项'update_count_callback' => '_update_post_term_count'不再为true。只需将分类法声明为非分层,就可以像标记一样工作。
        )
    );
}





?>

上面这段巨长无比的注册自定义分类的函数,功能完全正常。可以注册一个自定义分类。具体使用时菜单名称和位置,如下面系列图片展示。

用户在实际注册时,可根据实际需要,删除所有注释,也可以只保留自己需要的内容。

1人评论了“register_taxonomy 自定义分类法实例对照图”

  1. Pingback: register_taxonomy 快速注册一个自定义分类法 – 迷路轮回

评论区已关闭

Scroll to Top