首页 > 解决方案 > 将自定义分类添加到我的自定义帖子类型 wordpress

问题描述

我一直在尝试向我的 wordpress 页面添加自定义帖子类型,但它没有显示出来。

我究竟做错了什么?

感觉它只是一件小事,但我没有看到它,因为我对自定义帖子类型相当陌生。

我想要的是为我们公司的团队创建页面,我们可以展示我们所有的成员

<?php

function mon_register_post_type() {
  $labels = array(
      'name' => __( 'Teams' ),
      'singular_name' => __( 'Team' ),
      'add_new' => __( 'Add new'),
      'add_new_item' => __( 'Add New member'),
      'edit_item' => __( 'Edit member'),
      'new_item' => __( 'New member'),
      'view_item' => __( 'View members'),
      'search_items' => __( 'Search members'),
      'not_found' =>  __( 'No memebers Found' ),
      'not_found_in_trash' => __( 'No members found in Trash' )
  );
  $args = array(
      'labels' => $labels,
      'has_archive' => true,
      'public' => true,
      'hierarchical' => true,
      'public'              => true,
      'show_ui'             => true,
      'show_in_menu'        => true,
      'show_in_nav_menus'   => true,
      'show_in_admin_bar'   => true,
      'menu_position'       => 5,
      'can_export'          => true,
      'exclude_from_search' => false,
      'publicly_queryable'  => true,
      'show_in_rest' => true,
      'supports' => array('title','editor', 'excerpt', 'custom-fields', 'thumbnail', 'page-attributes'),
      'taxonomies' => array( 'teams' ),
      'rewrite'   => array( 'slug' => 'member' ),
  );
  register_post_type( 'mon_member', $args );

  register_taxonomy('teams', ['team'], [
        'label' => __('Teams', 'txtdomain'),
        'hierarchical' => true,
        'rewrite' => ['slug' => 'team'],
        'show_admin_column' => true,
        'show_in_rest' => true,
        'labels' => [
            'singular_name' => __('Team', 'txtdomain'),
            'all_items' => __('All Teams', 'txtdomain'),
            'edit_item' => __('Edit Team', 'txtdomain'),
            'view_item' => __('View Team', 'txtdomain'),
            'update_item' => __('Update Team', 'txtdomain'),
            'add_new_item' => __('Add New Team', 'txtdomain'),
            'new_item_name' => __('New Genre Team', 'txtdomain'),
            'search_items' => __('Search Teams', 'txtdomain'),
            'parent_item' => __('Parent Teams', 'txtdomain'),
            'parent_item_colon' => __('Parent Team:', 'txtdomain'),
            'not_found' => __('No Teams found', 'txtdomain'),
        ]
    ]);
    register_taxonomy_for_object_type('teams', 'team');
}
add_action( 'init', 'mon_register_post_type' );
?>

标签: phpwordpress

解决方案


我总是这样做的方式,注册自定义帖子类型,就像你已经完成的那样

   register_post_type( 'magazines',
    // CPT Options
    array(
        'labels' => array(
         'name' => __( 'Magazines' ),
         'singular_name' => __( 'magazines' ),
         'archives' => __( 'magazines' ),
        ),
        'public' => true,
        'has_archive' => true,
        'show_in_rest' => true,
        'rewrite' => array('slug' => 'magazines'),
        'show_in_nav_menu' => true,
        'menu_position' => 9,
        'supports' => array('title', 'editor', 'thumbnail', 'author'),
     )
    );

然后像这样的分类注册

function magazine_type_taxonomy() {
    $labels = array(
        'name'                       => _x( 'Magazine Categories', 'magazine-taxonomy', 'text_domain' ),
        'singular_name'              => _x( 'Magazine Categories', 'magazine-taxonomy', 'text_domain' ),
        'menu_name'                  => __( 'Magazine Categories', 'text_domain' ),
        'all_items'                  => __( 'All Items', 'text_domain' ),
        'parent_item'                => __( 'Parent Item', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
        'new_item_name'              => __( 'New Item Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Item', 'text_domain' ),
        'edit_item'                  => __( 'Edit Item', 'text_domain' ),
        'update_item'                => __( 'Update Item', 'text_domain' ),
        'view_item'                  => __( 'View Item', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used', 'text_domain' ),
        'popular_items'              => __( 'Popular Items', 'text_domain' ),
        'search_items'               => __( 'Search Items', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
        'no_terms'                   => __( 'No items', 'text_domain' ),
        'items_list'                 => __( 'Items list', 'text_domain' ),
        'items_list_navigation'      => __( 'Items list navigation', 'text_domain' ),
    );

    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
        'show_in_rest'               => true,
        'rest_base'                  => 'mag_type',
        'rest_controller_class'      => 'WP_REST_Terms_Controller',
    );

    register_taxonomy( 'magazine-taxonomy', array( 'magazines', 'digital'), $args );
}
add_action( 'init', 'magazine_type_taxonomy', 0 );

请注意我是如何在分类中分配自定义帖子类型而不是在实际帖子类型本身中


推荐阅读