如何注册一个名为“地区分类”的自定义分类法

注册地区分类法(taxonomy)

在WordPress的主题的functions.php文件或者一个自定义的插件文件中,你可以使用register_taxonomy函数来注册一个新的分类法。

function register_area_taxonomy() {
    $labels = array(
        'name'                       => _x( '地区分类', 'taxonomy general name' ),
        'singular_name'              => _x( '地区分类', 'taxonomy singular name' ),
        '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'      => __( '从最常用的选择' ),
        'not_found'                  => __( '没有找到地区分类' ),
        'menu_name'                  => __( '地区分类' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
        'rewrite'                    => array( 'slug' => 'area-category' ),
    );
    register_taxonomy( 'area_category', array( 'post' ), $args );
}
add_action( 'init', 'register_area_taxonomy' );

2. 在WordPress后台添加地区分类

注册完分类法后,你可以在WordPress后台的“文章” -> “地区分类”菜单中添加新的地区分类。

3. 查询地区分类下的文章

你可以使用WP_Query来查询特定地区分类下的文章。

// 假设你已经从URL中获取了地区分类的slug
$area_slug = isset($_GET['area']) ? sanitize_text_field($_GET['area']) : '';

$args = array(
    'post_type' => 'post', // 假设你查询的是文章
    'tax_query' => array(
        array(
            'taxonomy' => 'area_category', // 地区分类的别名
            'field'    => 'slug',
            'terms'    => array( $area_slug ), // 地区分类的slug
        ),
    ),
);

// 创建一个新的查询
$query = new WP_Query( $args );

// 循环输出文章
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        the_title();
        // 可以在这里添加其他的模板标签,比如内容摘要、图片等
        // ...
    }
    wp_reset_postdata(); // 重置查询
} else {
    // 没有找到文章
    echo '没有找到与该地区分类相关的文章。';
}