首页 > 解决方案 > 自定义分类未显示在自定义帖子列表中(我正在尝试逐字复制工作​​代码)

问题描述

我正在使用自定义 WP 主题并尝试创建带有自定义分类的自定义帖子类型。我试图复制和修改已在此代码上使用的另一个代码(显然修改了某些部分)但不起作用。

我的问题是我做错了什么,我怎样才能使它正常工作。

工作代码在管理面板上显示自定义帖子类型及其分类法。此外,我可以使用高级自定义字段更改它。我的自定义帖子类型不能。

我的代码

function cpt_cursos_rop() {
    $labels = array(
        'name'                  => 'Cursos ROP',
        'singular_name'         => 'Curso ROP',
        'menu_name'             => 'Cursos ROP',
        'name_admin_bar'        => 'Cursos ROP',
        'archives'              => 'Arquivo de Cursos',
        'attributes'            => 'Atributos do Curso',
        'parent_item_colon'     => 'Curso Pai:',
        'all_items'             => 'Todos os Cursos',
        'add_new_item'          => 'Adicionar Novo Curso',
        'add_new'               => 'Adicionar Novo',
        'new_item'              => 'Novo Curso',
        'edit_item'             => 'Editar Curso',
        'update_item'           => 'Atualizar Curso',
        'view_item'             => 'Ver Curso',
        'view_items'            => 'Ver Cursos',
        'search_items'          => 'Procurar Curso',
        'not_found'             => 'Nada Encontrado',
        'not_found_in_trash'    => 'Nada Encontrado na Lixeira',
        'featured_image'        => 'Imagem Destacada',
        'set_featured_image'    => 'Definir imagem destacada',
        'remove_featured_image' => 'Remover imagem destacada',
        'use_featured_image'    => 'Utilizar como imagem destacada',
        'insert_into_item'      => 'Inserir no Curso',
        'uploaded_to_this_item' => 'Enviado para este Curso',
        'items_list'            => 'Lista de Cursos',
        'items_list_navigation' => 'Navegação da lista de Cursos',
        'filter_items_list'     => 'Filtrar lista de Cursos',
    );
    $rewrite = array(
        'slug'                => 'curso-rop',
        'with_front'          => true,
        'pages'               => true,
        'feeds'               => true,
    );
    $args = array(
        'description'           => 'Registros de Cursos',
        'labels'                => $labels,
        'supports'              => array( 'title' ),
        'taxonomies'            => array( 'categoria_especialidades_rop', 'categoria_tipos_rop' ),
        'hierarchical'          => false,
        'public'                => true,
        'show_ui'               => true,
        'show_in_menu'          => true,
        'menu_position'         => 5,
        'menu_icon'             => 'dashicons-exerpt-view',
        'show_in_admin_bar'     => true,
        'show_in_nav_menus'     => true,
        'can_export'            => true,
        'has_archive'           => false,
        'exclude_from_search'   => false,
        'publicly_queryable'    => true,
        'capability_type'       => 'page',
        'rewrite'               => $rewrite,
        'show_in_rest'          => false,
    );

    register_post_type( 'CursosROP', $args );


    //TAXONOMIA - ESPECIALIDADES
    $labels_especialidades = array(
        'name'                       => 'Especialidades',
        'singular_name'              => 'Especialidade',
        'menu_name'                  => 'Especialidades',
        'all_items'                  => 'Todas as Especialidades',
        'parent_item'                => 'Especialidade Mãe',
        'parent_item_colon'          => 'Especialidade Mãe:',
        'new_item_name'              => 'Novo nome de Especialidade',
        'add_new_item'               => 'Adicionar Nova Especialidade',
        'edit_item'                  => 'Editar Especialidade',
        'update_item'                => 'Atualizar Especialidade',
        'separate_items_with_commas' => 'Separe as especialidades com virgulas',
        'search_items'               => 'Buscar Especialidades',
        'add_or_remove_items'        => 'Adicionar ou remover Especialidades',
        'choose_from_most_used'      => 'Escolher dentre as Especialidades mais utilizadas',
        'not_found'                  => 'Nada Localizado',
    );
    $rewrite_especialidades = array(
        'slug'                       => 'especialidades',
        'with_front'                 => true,
        'hierarchical'               => false,
    );
    $args_especialidades = array(
        'labels'                     => $labels_especialidades,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => false,
        'rewrite'                    => $rewrite_especialidades,
    );
    register_taxonomy( 'categoria_rop', 'curso-rop', $args_especialidades );

    //TAXONOMIA - TIPO
    $labels_tipos = array(
        'name'                       => 'Tipos',
        'singular_name'              => 'Tipo',
        'menu_name'                  => 'Tipos',
        'all_items'                  => 'Todas os Tipos',
        'parent_item'                => 'Tipo Mãe',
        'parent_item_colon'          => 'Tipo Mãe:',
        'new_item_name'              => 'Novo nome de Tipo',
        'add_new_item'               => 'Adicionar Novo Tipo',
        'edit_item'                  => 'Editar Tipo',
        'update_item'                => 'Atualizar Tipo',
        'separate_items_with_commas' => 'Separe os tipos com virgulas',
        'search_items'               => 'Buscar Tipos',
        'add_or_remove_items'        => 'Adicionar ou remover Tipo',
        'choose_from_most_used'      => 'Escolher dentreos Tipos mais utilizados',
        'not_found'                  => 'Nada Localizado',
    );
    $rewrite_tipos = array(
        'slug'                       => 'tipos',
        'with_front'                 => true,
        'hierarchical'               => false,
    );
    $args_tipos = array(
        'labels'                     => $labels_tipos,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => false,
        'rewrite'                    => $rewrite_tipos,
    );
    register_taxonomy( 'categoria_tipos_rop', 'cursosROP', $args_tipos );
}
add_action( 'init', 'cpt_cursos_rop', 0 );

工作代码(供参考)

function cpt_cursos() {

    $labels = array(
        'name'                  => 'Cursos',
        'singular_name'         => 'Curso',
        'menu_name'             => 'Cursos',
        'name_admin_bar'        => 'Cursos',
        'archives'              => 'Arquivo de Cursos',
        'attributes'            => 'Atributos do Curso',
        'parent_item_colon'     => 'Curso Pai:',
        'all_items'             => 'Todos os Cursos',
        'add_new_item'          => 'Adicionar Novo Curso',
        'add_new'               => 'Adicionar Novo',
        'new_item'              => 'Novo Curso',
        'edit_item'             => 'Editar Curso',
        'update_item'           => 'Atualizar Curso',
        'view_item'             => 'Ver Curso',
        'view_items'            => 'Ver Cursos',
        'search_items'          => 'Procurar Curso',
        'not_found'             => 'Nada Encontrado',
        'not_found_in_trash'    => 'Nada Encontrado na Lixeira',
        'featured_image'        => 'Imagem Destacada',
        'set_featured_image'    => 'Definir imagem destacada',
        'remove_featured_image' => 'Remover imagem destacada',
        'use_featured_image'    => 'Utilizar como imagem destacada',
        'insert_into_item'      => 'Inserir no Curso',
        'uploaded_to_this_item' => 'Enviado para este Curso',
        'items_list'            => 'Lista de Cursos',
        'items_list_navigation' => 'Navegação da lista de Cursos',
        'filter_items_list'     => 'Filtrar lista de Cursos',
    );
    $rewrite = array(
        'slug'                => 'curso',
        'with_front'          => true,
        'pages'               => true,
        'feeds'               => true,
    );
    $args = array(
        'description'           => 'Registros de Cursos',
        'labels'                => $labels,
        'supports'              => array( 'title' ),
        'taxonomies'            => array( 'categoria_especialidades', 'categoria_tipos' ),
        'hierarchical'          => false,
        'public'                => true,
        'show_ui'               => true,
        'show_in_menu'          => true,
        'menu_position'         => 5,
        'menu_icon'             => 'dashicons-exerpt-view',
        'show_in_admin_bar'     => true,
        'show_in_nav_menus'     => true,
        'can_export'            => true,
        'has_archive'           => false,       
        'exclude_from_search'   => false,
        'publicly_queryable'    => true,
        'capability_type'       => 'page',
        'rewrite'               => $rewrite,
        'show_in_rest'          => false,
    );

    register_post_type( 'Cursos', $args );


    //TAXONOMIA - ESPECIALIDADES
    $labels_especialidades = array(
        'name'                       => 'Especialidades',
        'singular_name'              => 'Especialidade',
        'menu_name'                  => 'Especialidades',
        'all_items'                  => 'Todas as Especialidades',
        'parent_item'                => 'Especialidade Mãe',
        'parent_item_colon'          => 'Especialidade Mãe:',
        'new_item_name'              => 'Novo nome de Especialidade',
        'add_new_item'               => 'Adicionar Nova Especialidade',
        'edit_item'                  => 'Editar Especialidade',
        'update_item'                => 'Atualizar Especialidade',
        'separate_items_with_commas' => 'Separe as especialidades com virgulas',
        'search_items'               => 'Buscar Especialidades',
        'add_or_remove_items'        => 'Adicionar ou remover Especialidades',
        'choose_from_most_used'      => 'Escolher dentre as Especialidades mais utilizadas',
        'not_found'                  => 'Nada Localizado',
    );
    $rewrite_especialidades = array(
        'slug'                       => 'especialidades',
        'with_front'                 => true,
        'hierarchical'               => false,
    );
    $args_especialidades = array(
        'labels'                     => $labels_especialidades,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => false,
        'rewrite'                    => $rewrite_especialidades,
    );
    register_taxonomy( 'categoria_especialidades', 'cursos', $args_especialidades );

    //TAXONOMIA - TIPO
    $labels_tipos = array(
        'name'                       => 'Tipos',
        'singular_name'              => 'Tipo',
        'menu_name'                  => 'Tipos',
        'all_items'                  => 'Todas os Tipos',
        'parent_item'                => 'Tipo Mãe',
        'parent_item_colon'          => 'Tipo Mãe:',
        'new_item_name'              => 'Novo nome de Tipo',
        'add_new_item'               => 'Adicionar Novo Tipo',
        'edit_item'                  => 'Editar Tipo',
        'update_item'                => 'Atualizar Tipo',
        'separate_items_with_commas' => 'Separe os tipos com virgulas',
        'search_items'               => 'Buscar Tipos',
        'add_or_remove_items'        => 'Adicionar ou remover Tipo',
        'choose_from_most_used'      => 'Escolher dentreos Tipos mais utilizados',
        'not_found'                  => 'Nada Localizado',
    );
    $rewrite_tipos = array(
        'slug'                       => 'tipos',
        'with_front'                 => true,
        'hierarchical'               => false,
    );
    $args_tipos = array(
        'labels'                     => $labels_tipos,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => false,
        'rewrite'                    => $rewrite_tipos,
    );
    register_taxonomy( 'categoria_tipos', 'cursos', $args_tipos );

}
add_action( 'init', 'cpt_cursos', 0 );

标签: phpwordpress

解决方案


您的问题是您没有调用正确的“especialidades”,即“categoria_rop”,并且两个分类法都被注册到错误的帖子类型名称,它需要是“curso-rop”而不是“curso-rop”和“cursosROP”你有它。

见下文:

function cpt_cursos_rop() {
    $labels = array(
        'name'                  => 'Cursos ROP',
        'singular_name'         => 'Curso ROP',
        'menu_name'             => 'Cursos ROP',
        'name_admin_bar'        => 'Cursos ROP',
        'archives'              => 'Arquivo de Cursos',
        'attributes'            => 'Atributos do Curso',
        'parent_item_colon'     => 'Curso Pai:',
        'all_items'             => 'Todos os Cursos',
        'add_new_item'          => 'Adicionar Novo Curso',
        'add_new'               => 'Adicionar Novo',
        'new_item'              => 'Novo Curso',
        'edit_item'             => 'Editar Curso',
        'update_item'           => 'Atualizar Curso',
        'view_item'             => 'Ver Curso',
        'view_items'            => 'Ver Cursos',
        'search_items'          => 'Procurar Curso',
        'not_found'             => 'Nada Encontrado',
        'not_found_in_trash'    => 'Nada Encontrado na Lixeira',
        'featured_image'        => 'Imagem Destacada',
        'set_featured_image'    => 'Definir imagem destacada',
        'remove_featured_image' => 'Remover imagem destacada',
        'use_featured_image'    => 'Utilizar como imagem destacada',
        'insert_into_item'      => 'Inserir no Curso',
        'uploaded_to_this_item' => 'Enviado para este Curso',
        'items_list'            => 'Lista de Cursos',
        'items_list_navigation' => 'Navegação da lista de Cursos',
        'filter_items_list'     => 'Filtrar lista de Cursos',
    );
    $rewrite = array(
        'slug'                => 'curso-rop',
        'with_front'          => true,
        'pages'               => true,
        'feeds'               => true,
    );
    $args = array(
        'description'           => 'Registros de Cursos',
        'labels'                => $labels,
        'supports'              => array( 'title' ),
        'taxonomies'            => array( 'categoria_rop', 'categoria_tipos_rop' ),
        'hierarchical'          => false,
        'public'                => true,
        'show_ui'               => true,
        'show_in_menu'          => true,
        'menu_position'         => 5,
        'menu_icon'             => 'dashicons-exerpt-view',
        'show_in_admin_bar'     => true,
        'show_in_nav_menus'     => true,
        'can_export'            => true,
        'has_archive'           => false,
        'exclude_from_search'   => false,
        'publicly_queryable'    => true,
        'capability_type'       => 'page',
        'rewrite'               => $rewrite,
        'show_in_rest'          => false,
    );

    register_post_type( 'CursosROP', $args );


    //TAXONOMIA - ESPECIALIDADES
    $labels_especialidades = array(
        'name'                       => 'Especialidades',
        'singular_name'              => 'Especialidade',
        'menu_name'                  => 'Especialidades',
        'all_items'                  => 'Todas as Especialidades',
        'parent_item'                => 'Especialidade Mãe',
        'parent_item_colon'          => 'Especialidade Mãe:',
        'new_item_name'              => 'Novo nome de Especialidade',
        'add_new_item'               => 'Adicionar Nova Especialidade',
        'edit_item'                  => 'Editar Especialidade',
        'update_item'                => 'Atualizar Especialidade',
        'separate_items_with_commas' => 'Separe as especialidades com virgulas',
        'search_items'               => 'Buscar Especialidades',
        'add_or_remove_items'        => 'Adicionar ou remover Especialidades',
        'choose_from_most_used'      => 'Escolher dentre as Especialidades mais utilizadas',
        'not_found'                  => 'Nada Localizado',
    );
    $rewrite_especialidades = array(
        'slug'                       => 'especialidades',
        'with_front'                 => true,
        'hierarchical'               => false,
    );
    $args_especialidades = array(
        'labels'                     => $labels_especialidades,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => false,
        'rewrite'                    => $rewrite_especialidades,
    );
    register_taxonomy( 'categoria_rop', 'cursosrop', $args_especialidades );

    //TAXONOMIA - TIPO
    $labels_tipos = array(
        'name'                       => 'Tipos',
        'singular_name'              => 'Tipo',
        'menu_name'                  => 'Tipos',
        'all_items'                  => 'Todas os Tipos',
        'parent_item'                => 'Tipo Mãe',
        'parent_item_colon'          => 'Tipo Mãe:',
        'new_item_name'              => 'Novo nome de Tipo',
        'add_new_item'               => 'Adicionar Novo Tipo',
        'edit_item'                  => 'Editar Tipo',
        'update_item'                => 'Atualizar Tipo',
        'separate_items_with_commas' => 'Separe os tipos com virgulas',
        'search_items'               => 'Buscar Tipos',
        'add_or_remove_items'        => 'Adicionar ou remover Tipo',
        'choose_from_most_used'      => 'Escolher dentreos Tipos mais utilizados',
        'not_found'                  => 'Nada Localizado',
    );
    $rewrite_tipos = array(
        'slug'                       => 'tipos',
        'with_front'                 => true,
        'hierarchical'               => false,
    );
    $args_tipos = array(
        'labels'                     => $labels_tipos,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => false,
        'rewrite'                    => $rewrite_tipos,
    );
    register_taxonomy( 'categoria_tipos_rop', 'cursosrop', $args_tipos );
}
add_action( 'init', 'cpt_cursos_rop', 0 );

推荐阅读