IU da taxonomia hierárquica

Eu não gosto da forma como as taxonomias são exibidas no administrador do WordPress e estava pensando se alguém sabia a melhor maneira de se conectar e mudá-lo. Atualmente, se eu selecionar alguns termos na minha publicação, esses termos selecionados vão para o topo da lista e a hierarquia é quebrada, tornando-se visualmente confuso para o usuário.

Por favor veja estas imagens para uma idéia do que estou falando

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Quero exibir as taxonomias exatamente como elas são exibidas inicialmente com apenas os termos corretos marcados. Existe uma maneira de fazer isso sem ter que editar o núcleo do WordPress diretamente, não consigo ver nenhum ganchos para mim usar.

Obrigado por qualquer ajuda que você pode dar!

Helen

Solutions Collecting From Web of "IU da taxonomia hierárquica"

Há um plugin do Scribu chamado Category Checklist Tree que desabilita esse “recurso”.

Backtrace

Primeiro, verifique se isso realmente acontece:

A checkbox meta é adicionada nas post.php e post-new.php .

 # inside ~/wp-admin/edit-form-advanced.php // TAGS: if ( !is_taxonomy_hierarchical($tax_name) ) add_meta_box('tagsdiv-' . $tax_name, $label, 'post_tags_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name )); // CATEGORIES: else add_meta_box($tax_name . 'div', $label, 'post_categories_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name )); 

Em seguida, movemos um arquivo mais profundo para o núcleo para chegar à definição / retorno da metabox

 // inside ~/wp-admin/meta-boxes.php function post_categories_meta_box( $post, $box ) 

A guia categorychecklist é aquela que contém a lista. Dentro da div , obtivemos uma function chamada wp_popular_terms_checklist($taxonomy); .

 # inside ~/wp-admin/includes/template.php  

»Conclusão:

Isso significa que não temos uma chance real de interceptar isso no nível do lado do servidor simples com filtros / ganchos WP e PHP.

Fazendo algo como …

 add_filter( 'wp_get_object_terms', '__return_empty_array', 20, 4 ); 

… simplesmente desativaria as checkboxs verificadas completamente.

irá atualizar se eu tiver mais informações e (talvez uma solução)