Wie kann ich diesen Taxonomie-Behandlungsansatz verbessern?

Ich möchte Unterkategorien bestimmter category-id.php in meiner Vorlage category-id.php mit folgendem Code category-id.php

 function the_categories_navigations_trees() { $cat_data = get_categories( array ( 'parent' => 42, 'hide_empty' => 0 ) ); if ( $cat_data ) { $cat_links = ''; foreach ( $cat_data as $one_cat_data) $cat_links .= sprintf( 'https://wordpress.stackexchange.com/questions/279749/how-can-i-improve-this-taxonomy-treating-approach/%s
', get_category_link( $one_cat_data->term_id ) , $one_cat_data->cat_name ); printf( '', $cat_links ); } }

Das Problem ist, dass ich diese function für alle Kategorien / Unterkategorien duplizieren muss, die Kinder haben und nur eine Kategorie Identifikation ersetzen. Es ist Overhead, wirklich.

Wie kann ich meinen Ansatz optimieren? Möglicherweise gibt es eine Methode, eine einzige function für alle Vorlagen zu verwenden, um Unterkategorien aufzulisten.

Solutions Collecting From Web of "Wie kann ich diesen Taxonomie-Behandlungsansatz verbessern?"

Dafür steht functions.php. Fügen Sie die function zu functions.php hinzu, mit nur einer kleinen Änderung, die es Ihnen ermöglicht, in welcher Kategorie Sie die Kinder erhalten möchten:

 function the_categories_navigations_trees( $parent ) { $cat_data = get_categories( array( 'parent' => $parent, 'hide_empty' => 0 ) ); if ( $cat_data ) { $cat_links = ''; foreach ( $cat_data as $one_cat_data) { $cat_links .= sprintf( 'https://wordpress.stackexchange.com/questions/279749/how-can-i-improve-this-taxonomy-treating-approach/%s
', get_category_link( $one_cat_data->term_id ), $one_cat_data->cat_name ); } printf( '', $cat_links ); } }

Siehe $parent Argument in der function?

Jetzt können Sie in Ihrer Vorlage die Ausgabe für einen bestimmten Elternteil erhalten:

 < ?php the_categories_navigations_trees( get_queried_object_id() ); ?> 

get_queried_object_id() erhält die ID der aktuell get_queried_object_id() Kategorie. Ersetzen Sie es durch etwas Spezifisches, wenn Sie müssen.