Вывод подкатегорий таксономий в WordPress

Комментариев: 1

Чтобы отобразить подкатегории текущей категории, а также, что бы отобразить родительские категории на странице архива и страницы таксономии, воспользуйтесь этим решением:

В файл function.php добавляем функцию:

if ( ! function_exists( 'fixcode_post_categories' ) ) {
	/**
	 * Функция вывод подкатегорий во всех типах записей
	 */
	function fixcode_post_categories() { 

		global $wp_query;

		//Получаем название таксномии. Так как в разных местах 
		//Получать по-разному, делаем это дважды.
		//Если нужно только для конкретной таксономии, просто
		//установите значение $taxonomy = 'my_tax'; вместо кода ниже
		
		$tax_1 = $wp_query->queried_object->taxonomies['0'];
		$tax_2 = $wp_query->query_vars['taxonomy'];
		
		if ($tax_1) {
			$taxonomy = $tax_1;
		} else {
			$taxonomy = $tax_2;
		}
		
		//Получаем ID категории, что бы получать её вложенные. Если ID пустой, то будем получать родительские категории.
		
		$term_id = get_queried_object()->term_id;
		if ($term_id) {
			$parent = '';
		} else {
			$parent = 0;
		}
		
		//Получаем список категорий
		
		$categories = get_terms($taxonomy, [
		'hide_empty' => false,
		'child_of'=> $term_id,
		'parent' => $parent
		] );
		
		//Выводим список категорий
		
		echo '<div class="row">';
			foreach ($categories as $category) {
				echo '<div class="col-md-3">';
				echo '<div class="item-category">';
				echo '<div class="category-name"><a href="'.get_term_link($category->term_id).'">'.$category->name.'</a></div>';
				echo '</div>';
				echo '</div>';
			}
		echo '</div>';
	}
}
//Добавляем вывод для экшена categories
add_action( 'categories','fixcode_post_categories', 10 );

Теперь, в нужном месте вашего шаблона просто добавьте:

<?do_action( 'categories' );?>

И на этом всё, подкатегории должны выводиться. А там уже адаптируйте под свои задачи внешний вид и вывод, код простой для понимания.

Уведомлять о новых комментариях
Уведомлять
guest
1 Комментарий
Inline Feedbacks
View all comments
Артем
Артем
3 лет назад

Вот еще вариант вывода подкатегории с записями: <?php $taxonomy   = ‘team_type’; $orderby   = ‘name’;   $show_count  = 0; $pad_counts  = 0;  $hierarchical = 1;  $title    = »;   $empty    = 1; $args = array( ‘taxonomy’   => $taxonomy, ‘orderby’   => $orderby, ‘show_count’  => $show_count, ‘pad_counts’  => $pad_counts, ‘hierarchical’ => $hierarchical, ‘title_li’   => $title, ‘hide_empty’  => $empty ); ?> <?php $all_categories = get_categories( $args ); //print_r($all_categories); foreach ($all_categories as $cat) { if($cat->category_parent == 0) { $category_id = $cat->term_id; // print_r($cat->term_id); ?>  <div class=»b-drop wow fadeInUp down»> <div class=»b-drop__alsus down-toggle»><span class=»typo-uiuri»><?php echo $cat->name ?></span></div> <div class=»b-drop__body down-body»> <div class=»cn-cols-row cn-gutter-h-30 wow-delay cn-mb-70 cn-mb-30—sm»> <?php   global $wp_query; $wp_query = new WP_Query(array( ‘post_type’ => ‘team’, ‘posts_per_page’ => ’10’, ‘tax_query’ =>… Читать далее »