Intereting Posts

Перечислите суб-таксономии из текущей таксономии

У меня есть обычная таксономия, называемая book с терминами: «научная фантастика», «романтичная», «история»,
Каждая из этих таксономий имеет 4 суб-таксономии, которые мне нужно отображать в качестве вспомогательной навигации.

Сначала я хотел бы получить текущую таксономию моей страницы, а затем отобразить список этих суб-таксономий.

пока у меня есть это:

 <?php $taxonomy = 'book'; $orderby = 'name'; $show_count = 0; // 1 for yes, 0 for no $pad_counts = 0; // 1 for yes, 0 for no $hierarchical = 1; // 1 for yes, 0 for no $title = ''; $empty = 0; $args = array( 'taxonomy' => $taxonomy, 'orderby' => $orderby, 'show_count' => $show_count, 'pad_counts' => $pad_counts, 'hierarchical' => $hierarchical, 'title_li' => $title, 'hide_empty' => $empty ); ?> <ul class="guide-navigation"> <?php wp_list_categories( $args ); ?> </ul> 

Мне нужно получить текущую таксономию моей страницы, чтобы ввести ее в этот код, чтобы перечислить ее суб-таксономии. Как я могу это сделать?

Это может помочь вам:

 <?php //first get the current term $current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); //then set the args for wp_list_categories $args = array( 'child_of' => $current_term->term_id, 'taxonomy' => $current_term->taxonomy, 'hide_empty' => 0, 'hierarchical' => true, 'depth' => 1, 'title_li' => '' ); wp_list_categories( $args ); ?> 

Источник – https://codex.wordpress.org/Function_Reference/get_term_by (вы можете жестко закодировать таксономию «книг», или вы можете просто получить активную таксономию).

РЕДАКТИРОВАНИЕ

Вы можете создать пользовательскую функцию для получения детей таксономии, как на приведенной ниже ссылке.

 $hierarchy = get_taxonomy_hierarchy( 'book' ); /** * Recursively get taxonomy hierarchy * * @param string $taxonomy * @param int $parent - parent term id * @return array */ function get_taxonomy_hierarchy( $taxonomy, $parent = 0 ) { // only 1 taxonomy $taxonomy = is_array( $taxonomy ) ? array_shift( $taxonomy ) : $taxonomy; // get all direct decendents of the $parent $terms = get_terms( $taxonomy, array( 'parent' => $parent ) ); // prepare a new array. these are the children of $parent // we'll ultimately copy all the $terms into this new array, but only after they // find their own children $children = array(); // go through all the direct decendents of $parent, and gather their children foreach ( $terms as $term ){ // recurse to get the direct decendents of "this" term $term->children = get_taxonomy_hierarchy( $taxonomy, $term->term_id ); // add the term to our new array $children[ $term->term_id ] = $term; } // send the results back to the caller return $children; } 

http://www.daggerhart.com/wordpress-get-taxonomy-hierarchy-including-children/