Wie man Begriffe nicht nur der aktuellen Katze, sondern auch aller ihrer Kinder erhält

Ich modde ein Thema, um Elterntaxonomiebegriffe anstelle aller Taxonomiebegriffe zu verwenden, jetzt konnte ich nur die Eltern anzeigen, aber jetzt bin ich auf ein Zählproblem gestoßen.

Grundsätzlich ist dies der Code, der geändert werden muss

$_products_in_term = get_objects_in_term( $term->term_id, $taxonomy ); 

Dies erhält alle Terme des aktuellen Terms, der später zum Abfangen und dann zum Zählen verwendet wird. Nun, wie könnte ich diesen Code ändern, um nicht nur die Bedingungen des aktuellen Begriffs zu bekommen, aber wenn er Kinder hat, bekommen Sie die Bedingungen aller seiner Kinder, (wird nur 1 tief gehen, nicht mit Enkel arbeiten)

Dies ist der Code der vollständige Code

  foreach ($terms as $term) { // Get count based on current view - uses transients $transient_name = 'wc_ln_count_' . md5( sanitize_key($taxonomy) . sanitize_key( $term->term_id ) ); if ( false === ( $_products_in_term = get_transient( $transient_name ) ) ) { // $_products_in_term = get_objects_in_term( $term->term_id, $taxonomy ); $args2['child_of'] = $term->term_id; $terms = get_terms( $taxonomy , $args2 ); $term_array=array(); foreach($terms as $terms){ $term_array[]= $terms->term_id; } $_products_in_term = get_objects_in_term( $term_array, $taxonomy ); set_transient( $transient_name, $_products_in_term ); } $option_is_set = (isset($_chosen_attributes[$taxonomy]) && in_array($term->term_id, $_chosen_attributes[$taxonomy]['terms'])) ; // If this is an AND query, only show options with count > 0 if ($query_type=='and') { $count = sizeof(array_intersect($_products_in_term, $woocommerce->query->filtered_product_ids)); // skip the term for the current archive if ( $current_term == $term->term_id ) continue; if ($count>0 && $current_term !== $term->term_id ) $found = true; if ($count==0 && !$option_is_set) continue; // If this is an OR query, show all options so search can be expanded } else { // skip the term for the current archive if ( $current_term == $term->term_id ) continue; $count = sizeof(array_intersect($_products_in_term, $woocommerce->query->unfiltered_product_ids)); if ($count>0) $found = true; } 

Solutions Collecting From Web of "Wie man Begriffe nicht nur der aktuellen Katze, sondern auch aller ihrer Kinder erhält"