WordPress创建自定义分类法

WordPress创建自定义分类法

方法一:WordPress创建自定义分类法,‌如“省份”、‌“城市”、‌“类型”和“价格”

把以下代码放到主题的 functions.php 文件中

代码1

// Create custom taxonomy  创建自定义分类法,‌如“省份”、‌“城市”、‌“类型”和“价格”
add_action('init', 'ashu_post_type');
function ashu_post_type() {
    register_taxonomy('province', 'post', array('label' => '省', 'rewrite' => array('slug' => 'province'), 'hierarchical' => true));
    register_taxonomy('city', 'post', array('label' => '市', 'rewrite' => array('slug' => 'city'), 'hierarchical' => true));
    register_taxonomy('genre', 'post', array('label' => '类型', 'rewrite' => array('slug' => 'genre'), 'hierarchical' => true));
    register_taxonomy('price', 'post', array('label' => '价格', 'rewrite' => array('slug' => 'price'), 'hierarchical' => true));
}

代码2

add_action('init', 'ashu_register_custom_taxonomies');

function ashu_register_custom_taxonomies() {
    // 注册省份分类法
    register_taxonomy('province', 'post', array(
        'label' => '省',
        'rewrite' => array('slug' => 'province'),
        'hierarchical' => true
    ));

    // 注册城市分类法
    register_taxonomy('city', 'post', array(
        'label' => '市',
        'rewrite' => array('slug' => 'city'),
        'hierarchical' => true
    ));

    // 注册类型分类法
    register_taxonomy('genre', 'post', array(
        'label' => '类型',
        'rewrite' => array('slug' => 'genre'),
        'hierarchical' => true // 根据实际情况,这可能需要调整
    ));

    // 注册价格分类法
    // 注意:价格通常不需要层级结构,除非您有特殊需求
    register_taxonomy('price', 'post', array(
        'label' => '价格',
        'rewrite' => array('slug' => 'price'),
        'hierarchical' => false // 设置为false,除非您确实需要层级价格分类
    ));
}

代码3

// 确保文件被正确调用
defined( 'ABSPATH' ) || exit;
 
// 注册自定义文章类型
function my_custom_taxonomy() {
    $labels = array(
        'name'                       => _x( '分类名称', 'taxonomy general name' ),
        'singular_name'              => _x( '分类', 'taxonomy singular name' ),
        'search_items'               => __( '搜索分类' ),
        'all_items'                  => __( '所有分类' ),
        'parent_item'                => __( '父分类' ),
        'parent_item_colon'          => __( '父分类:' ),
        'edit_item'                  => __( '编辑分类' ),
        'update_item'                => __( '更新分类' ),
        'add_new_item'               => __( '添加新分类' ),
        'new_item_name'              => __( '新分类名称' ),
        'menu_name'                  => __( '分类' ),
    );
 
    $args = array(
        'hierarchical' => true,
        'labels'       => $labels,
        'show_ui'      => true,
        'show_admin_column' => true,
        'query_var'    => true,
        'rewrite'      => array( 'slug' => '分类slug' ),
    );
 
    register_taxonomy( 'my_custom_taxonomy', array( 'post' ), $args );
}
add_action( 'init', 'my_custom_taxonomy', 0 );
 
// 在文章发布页显示自定义分类
function show_custom_taxonomy_in_single() {
    echo '<div class="custom-taxonomy">';
    echo get_the_term_list( get_the_ID(), 'my_custom_taxonomy', '<ul><li>', ',</li>', '</li></ul>' );
    echo '</div>';
}
add_action( 'genesis_before_post_content', 'show_custom_taxonomy_in_single' );

代码4

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,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => ['slug' => 'course'],
    ];
    register_taxonomy('course', ['post'], $args);
}
add_action('init', 'wporg_register_taxonomy_course');

代码1、代码2、代码3、代码4的效果是一样的

方法二:专题功能实现代码,利用自定义分类法实现

        Woredpress专题这个功能在好几年前就出现过,不知为何消失在历史中了。不过最近国内主题出现好几款带专题功能的。说明这个东西还是挺有作用的。不过用别人的代码总是受制于人,我比较喜欢自己掌控,今天就讲一讲用代码实现WordPress的专题功能,一起来学习下吧!先上图:

把以下代码放到主题的 functions.php 文件中

// WordPress专题功能实现代码,利用自定义分类法实现
$labels = array(   
        'name' => '专题',    
        'singular_name' => 'special',   
        'search_items' =>  '搜索' ,   
        'popular_items' => '热门' ,   
        'all_items' => '所有' ,   
        'parent_item' => null,   
        'parent_item_colon' => null,   
        'edit_item' => '编辑' ,    
        'update_item' => '更新' ,   
        'add_new_item' => '添加' ,   
        'new_item_name' => '专题名称',   
        'separate_items_with_commas' => '按逗号分开' ,   
        'add_or_remove_items' => '添加或删除',   
        'choose_from_most_used' => '从经常使用的类型中选择',   
        'menu_name' => '专题',   
    );    
    register_taxonomy(   
        'special',   
        array('post'),   
        array(   
            'hierarchical' => true,   
            'labels' => $labels,   
            'show_ui' => true,   
            'query_var' => true,   
            'rewrite' => array( 'slug' => 'special' ),   
        )   
    );

方法三:新增自定义文章类型:专题

把以下代码放到主题的 functions.php 文件中

//新增自定义文章类型:专题
function qui_class() {
    register_post_type( 'series', //这里的work可以自行修改,主要体现在URL里面
        array(
            'labels' => array(
                'name' => '专题',
                'singular_name' => '所有专题',
                'add_new' => '添加专题',
                'add_new_item' => '添加新专题',
                'edit' => '编辑',
                'edit_item' => '编辑专题',
                'new_item' => '新专题',
                'view' => '查看专题',
                'view_item' => '查看专题',
                'search_items' => '搜索专题',
                'not_found' => '没有找到相关专题',
                'not_found_in_trash' => '没有专题评论',
                'parent' => '专题评论',
            ),
            'exclude_from_search'=>false,
            'public' => true,
            'menu_position' => 6,
            'supports' => array( 'title', 'editor','comments', 'custom-fields','thumbnail','excerpt'), //为自定义文章添加标题,编辑器,评论,自定义字段,特色图像,摘要功能
            'taxonomies' => array( '' ), //分类法,我们是单独定义
            'has_archive' => true,
            // 'taxonomies'=> array('post_tag'), //没有这一句是没有标签功能的
        )
    );
}
add_action( 'init', 'qui_class' ); //挂载函数
//为商品类自定义类型增加分类功能
add_action( 'init', 'qui_class_child', 0 ); 
function qui_class_child() {
    register_taxonomy(
        'series', //这个分类法
        'series', //这个是自定义文章类型,默认文章是post,其他是你自己定义的
        array(
            'labels' => array(
                'name' => '作品专题',
                'add_new_item' => '添加专题',
                'new_item_name' => "新专题分类"
            ),
            'show_ui' => true,
            'show_tagcloud' => true,
            'hierarchical' => true,
        )
    );
}