Como restringir a seleção de taxonomia infantil

Eu tenho um nome de taxonomia “Cidade”. Eu usei “cidade” como essa.

City 1 Sub city 1 Sub city 2 City 2 Sub city 3 Sub city 4 

Aqui, o problema é se o administrador / usuário seleciona a Cidade 1, eles podem até selecionar a sub-cidade 3 ou a sub-cidade 4, que não está na Cidade 1. Eu quero restringir o usuário que eles não podem selecionar uma taxonomia infantil até terem selecionado a taxonomia dos pais.

Ou existe alguma outra maneira, que a taxonomia infantil aparecerá como suspensa, ao selecionar a taxonomia dos pais.

Solutions Collecting From Web of "Como restringir a seleção de taxonomia infantil"

Realmente, você provavelmente poderia refinar isso mais e apresentar nomes melhores, eu só queria torná-lo funcional ^ _ ^!

A primeira coisa é a primeira -> Vamos include o JQuery porque eu não quero fazer isso em vanilla JS.

 function lets_include_jquery() { wp_enqueue_script( 'jquery' ); } add_action( 'admin_enqueue_scripts', 'lets_include_jquery' ); 

Agora vamos lançar um script no rodapé do nosso painel de administração para cuidar das coisas divertidas.

 function lets_add_our_js() { if(get_current_post_type() == 'POST_TYPE_HERE') : ?>  < ?php endif; } add_action('admin_footer', 'lets_add_our_js'); 

É um script bastante genérico, nada excitante acontecendo. Em seguida, adicionamos uma pequena function limpa que eu encontrei online !

 function get_current_post_type() { global $post, $typenow, $current_screen; //we have a post so we can just get the post type from that if ( $post && $post->post_type ) return $post->post_type; //check the global $typenow - set in admin.php elseif( $typenow ) return $typenow; //check the global $current_screen object - set in sceen.php elseif( $current_screen && $current_screen->post_type ) return $current_screen->post_type; //lastly check the post_type querystring elseif( isset( $_REQUEST['post_type'] ) ) return sanitize_key( $_REQUEST['post_type'] ); //we do not know the post type! return null; } 

Whew ! Agora há algumas coisas que você precisa mudar ... Onde quer que você encontre POST_TYPE_HERE você precisará replace isso por qualquer que seja o tipo de publicação, então o script só aparecerá nessas páginas de administração. Se você tiver múltiplo, é in_array() . Onde você ver TAXONOMY_NAME_HERE você deseja replace isso pelo nome da taxonomia que a metabox contém. Então, se eu criar uma taxonomia / categoria chamada "tax_news", o meu Jquery iria ler: '#tax_newschecklist' etc.

É até você Para renomear e comentar este código para que isso faça sentido para você e seu cenário para fins futuros! Eu sugiro que você faça isso!