WordPress注册一个名为“课程”的自定义分类法。
把以下代码放到主题的 functions.php 文件中
/*
* Plugin Name: Course Taxonomy 课程分类
* Description: A short example showing how to add a taxonomy called Course. 一个简短的示例展示了如何添加一个名为“课程”的分类法。
* Version: 1.0
* Author: developer.wordpress.org
* Author URI: https://
*/
function wporg_register_taxonomy_course()
{
$labels = [
'name' => _x('Courses', 'taxonomy general name'), // ('我的自定义分类', 'taxonomy general name'),
'singular_name' => _x('Course', 'taxonomy singular name'), // ('我的自定义分类项', 'taxonomy singular name'),
'search_items' => __('Search Courses'), // 搜索我的自定义分类项
'all_items' => __('All Courses'), // 所有我的自定义分类项
'parent_item' => __('Parent Course'), //父级我的自定义分类项
'parent_item_colon' => __('Parent Course:'), //父级我的自定义分类项:
'edit_item' => __('Edit Course'), // 编辑我的自定义分类项
'update_item' => __('Update Course'), // 更新我的自定义分类项
'add_new_item' => __('Add New Course'), // 添加新的我的自定义分类项
'new_item_name' => __('New Course Name'), // 新的我的自定义分类项名称
'menu_name' => __('课程'), // 我的自定义分类 源码:Course
];
$args = [
'hierarchical' => true, // make it hierarchical (like categories) 使其具有层次结构(如类别)
'labels' => $labels,
'show_ui' => true, //是否在后台显示UI
'show_admin_column' => true, // 是否在文章列表显示该分类法列
'query_var' => true, // 是否允许通过查询字符串访问该分类法
'rewrite' => ['slug' => 'course'], // URL重写规则
];
register_taxonomy('course', ['post'], $args);
}
add_action('init', 'wporg_register_taxonomy_course');
下面是要把课程分类显示在发布文章页右侧
在WordPress后台的文章发布页显示多个自定义分类,这通常涉及到前端界面(admin panel)的自定义和可能的代码调整。由于WordPress的核心功能已经支持在文章发布页显示多个分类(针对内置的“分类”功能),但如果你指的是自定义分类法(taxonomy),那么你可能需要通过一些额外的步骤来实现。
把以下代码放到主题的 functions.php 文件中
/** 纯代码WordPress后台发布页右侧显示多个分类 **/
// 使用add_meta_box()函数来添加自定义的元框(meta box)。
add_action('add_meta_boxes', 'add_custom_taxonomy_metabox');
function add_custom_taxonomy_metabox() {
add_meta_box(
'custom_taxonomy_metabox', // 唯一ID
'自定义分类', // 标题
'render_custom_taxonomy_metabox', // 回调函数
'post', // 文章类型
'side', // 位置
'high' // 优先级
);
}
function render_custom_taxonomy_metabox($post) {
// 获取当前文章的ID
$post_id = $post->ID;
// 自定义分类法的名称(或slug),这里假设是'course'
$taxonomy = 'course';
// 渲染自定义分类法的复选框列表
wp_terms_checklist($post_id, array(
'taxonomy' => $taxonomy, // 自定义分类法的名称
'descendant_select' => true, // 允许选择子项
'selected_cats' => wp_get_object_terms($post_id, $taxonomy, array('fields' => 'ids')), // 获取当前已选中的项
'popular_cats' => false, // 不显示热门项
'walker' => null, // 使用默认的walker
'checked_ontop' => false, // 不将已选中的项放在顶部
'class' => '', // 额外的HTML类
'style' => '', // 额外的内联样式
'echo' => 1 // 是否直接输出HTML,设置为1表示输出
));
// 如果需要,您可以在这里添加更多的HTML代码或JavaScript
}