Wie schränkt man die Auswahl der untergeordneten Taxonomie ein?

Ich habe den Taxonomennamen “Stadt”. Ich habe “Stadt” so benutzt.

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

Hier ist das Problem, wenn Admin / Benutzer Stadt 1 wählen, sie können sogar Unterstadt 3 oder Unterstadt 4 wählen, die nicht unter der Stadt 1 liegt. Ich möchte Benutzer einschränken, dass sie eine untergeordnete Taxonomie nicht auswählen können, bis sie die übergeordnete Taxonomie ausgewählt haben.

Oder gibt es eine andere Möglichkeit, dass die Kindtaxonomie nach Auswahl der übergeordneten Taxonomie als Dropdown angezeigt wird.

Solutions Collecting From Web of "Wie schränkt man die Auswahl der untergeordneten Taxonomie ein?"

Wirklich, du könntest das vielleicht besser verfeinern und dir bessere Namen einfallen lassen, ich wollte es nur funktional machen ^ _ ^!

Das Wichtigste zuerst -> Lassen Sie uns JQuery hinzufügen, weil ich dies nicht in Vanille JS tun möchte.

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

Nun casting wir ein Skript in die Fußzeile unseres Admin-Panels, um sich um die lustigen Dinge zu kümmern.

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

Es ist ein ziemlich generisches Skript, nichts Besonderes. Als nächstes fügen wir eine nette kleine function hinzu, die ich online gefunden habe !

 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; } 

Puh ! Jetzt gibt es ein paar Dinge, die Sie ändern müssen ... Wo immer Sie POST_TYPE_HERE finden, POST_TYPE_HERE Sie das durch Ihren Post-Typ ersetzen, damit das Skript nur auf diesen Admin-Seiten erscheint. Wenn Sie mehrere haben, ist in_array() . Wo immer Sie TAXONOMY_NAME_HERE sehen, TAXONOMY_NAME_HERE Sie das durch den Taxonomie-Namen ersetzen, den die Metabox enthält. Wenn ich also eine Taxonomie / Kategorie namens "tax_news" erstelle, würde meine Jquery lesen: '#tax_newschecklist' usw.

Es liegt an Ihnen , diesen Code umzubenennen und zu kommentieren, damit er für zukünftige Zwecke für Sie und Ihr Szenario sinnvoll ist! Ich schlage vor, Sie tun es!