WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_list_categories() WP 2.1

Выводит список категорий в виде ссылок. Если перейти по ссылке, то будут показаны все посты из категории.

Работает на основе: get_categories(), walk_category_tree()
Хуки из функции
Возвращает

false/строку. HTML код если echo=1. Если echo=0 вернет HTML код в переменную для дальнейшей обработки.

Использование

<ul>
	<?php wp_list_categories( $args ); ?>
</ul>

Шаблон использования

$args = array(
	'show_option_all'    => '',
	'show_option_none'   => __('No categories'),
	'orderby'            => 'name',
	'order'              => 'ASC',
	'style'              => 'list',
	'show_count'         => 0,
	'hide_empty'         => 1,
	'use_desc_for_title' => 1,
	'child_of'           => 0,
	'feed'               => '',
	'feed_type'          => '',
	'feed_image'         => '',
	'exclude'            => '',
	'exclude_tree'       => '',
	'include'            => '',
	'hierarchical'       => true,
	'title_li'           => __( 'Categories' ),
	'number'             => NULL,
	'echo'               => 1,
	'depth'              => 0,
	'current_category'   => 0,
	'pad_counts'         => 0,
	'taxonomy'           => 'category',
	'walker'             => 'Walker_Category',
	'hide_title_if_empty' => false,
	'separator'          => '<br />',
);

echo '<ul>';
	wp_list_categories( $args );
echo '</ul>';

Аргументы передаваемые параметру $args

Кроме указанных ниже параметров может принимать параметры get_terms().

child_of(число)
Показать дочерние категории. В параметре указывается ID родительской категории (категория, вложенные категории которой нужно показать).
current_category(строка/массив)

ID категории или массив из ID. К которым нужно добавить класс current-cat (class="current-cat"). Это нужно, чтобы подсветить категорию через CSS стили.

В нормальном режиме такой класс добавляется к текущей категории на странице категорий. Этот параметр нужен, чтобы, например, добавить этот класс на отдельных страницах, которые не относятся к текущей категории.

С версии 4.4. в этот параметр можно передавать массив ID.
По умолчанию: ''

depth(число)

Этот параметр контролирует глубину вложенности категорий, которые будут показаны. По умолчанию 0- показывать все уровни вложенности (все дочерние категорий). С версии 2.5.

  • 0 - все уровни вложенности (По умолчанию);
  • -1 - показать все дочерние категории, но без вложенности li списков. Отменяет параметр hierarchical;
  • 1 - показать только категории первого уровня (все виды вложенных категорий не будут показываться);
  • n - число - глубина вложенности которую нужно показывать. 2 - покажет категорий первого и второго уровня.
меню
echo(логический)

Выводить на экран или возвращать для обработки.

  • 1 (true) - да, выводить на экран;
  • 0 (false) - нет, просто возвратить данные.

По умолчанию: true

exclude(строка)

Исключить категории из списка. Нужно указывать ID категорий через запятую.

  • Если этот параметр указан, параметр child_of будет отменен.
  • Если параметр heiararchical=true, то будет исключаться вся ветка. Если heiararchical=false, то для исключения ветки используйте параметр exclude_tree.

По умолчанию: ''

exclude_tree(строка)
Исключить дерево категорий из списка. Указывайте ID категорий через запятую. Параметр include должен быть пустым. Если параметр heirarchical=true, то используйте exclude вместо exclude_tree.
По умолчанию: ''
include(строка)
Вывести списком только указанные категории. Указывать нужно ID категорий через запятую.
По умолчанию: ''
hide_empty(логический)

Скрывать ли категории в которых нет записей?

  • 0 (false) - показывать пустые (не скрывать);
  • 1 (true) - не показывать пустые категории (скрывать).

По умолчанию: 1

hide_title_if_empty(логический)
Нужно ли прятать $title_li если в списке нет элементов. С версии 4.4.
По умолчанию: false (всегда будет показываться)
hierarchical(логический)

Показывать категории как дерево. Показывать вложенные (дочерние категории), как вложенный список.

  • 1 (true) - да, древовидный тип отображения;
  • 0 (false) - нет, показать сплошным типом.

По умолчанию: true

order(строка)

Направление сортировки:

  • ASC - по порядку, от меньшего к большему (1, 2, 3; a, b, c);
  • DESC - в обратном порядке, от большего к меньшему (3, 2, 1; c, b, a).

По умолчанию: 'ASC'

orderby(строка)

Сортировка списка по определенным критериям. Например по количеству постов в каждой категории или по названию категорий. Доступны следующие критерии:

  • ID - сортировка по ID;
  • name - сортировка по названию (по умолчанию);
  • slug - сортировка по алт. имени (slug);
  • count - по количеству записей в категории;
  • term_group - по группе.

По умолчанию: 'name'

separator(строка)
Разделитель между элементами. С версии 4.4.
По умолчанию: '<br />'
show_count(логический)

Показывать/нет количество записей в категории. Число записей будет показано после названия категории в скобках (например, Психология (16)).

  • 1 (true) - показывать количество записей;
  • 0 (false) - не показывать количество записей.
show_option_all(строка)

Текст для отображения всех категорий.

Если передать не пустую строку, например 'Все категории', то в список будет добавлена ссылка на все категории (часто это ссылка на главную страницу блога). Текстом ссылки станет текст переданный параметру, в данном случае Все категории.
По умолчанию: ''

show_option_none(строка)
Если функция не нашла ни одной категории для показа, то будет показан этот текст.
По умолчанию: 'Нет рубрик'
style(строка)

Стиль вывода списка.

  • list - означает, что нужно выводить списком в теге <li>, вложенность категорий будет соблюдена.
  • none - будут выведены только ссылки на категории (<a>) разделенные тегом <br>.

По умолчанию: 'list'

taxonomy(строка)
Название таксономии, которую нужно обрабатывать.
По умолчанию: 'category'
title_li(строка)
Установить заголовок списка. Если изменить этот параметр на '' (title_li=), то заголовок не будет выводиться вовсе.
По умолчанию: 'Категории'
use_desc_for_title(логический)

Вставлять ли описание категории в атрибут title у ссылки (<a title="Описание категории" href="...):

  • 1 (true) - да, вставлять описание в title, если оно есть;
  • 0 (false) - нет, не использовать описание (будет: Посмотреть все записи в рубрике "название категории").

По умолчанию: true

number(число)
Установить максимальное количество отображаемых категорий (SQL LIMIT). По умолчанию выводится без ограничений.
По умолчанию: ''
pad_counts(логический)
Считать общее количество постов во вложенных категориях и показывать это число рядом с родительской категорией. Параметр включается автоматически при включенных show_count и hierarchical.
По умолчанию: 0 (false)
feed(логический)
Показать ли рядом с названием ссылку на RSS фид (rrs-2) категории. Текст переданный в этом параметре станет текстом ссылки.
По умолчанию: ''
feed_type(строка)
Тип фида
По умолчанию: 'rss-2'
feed_image(строка)
Показать ли рядом с названием ссылку-картинку на RSS фид (rrs-2) категории. В параметре нужно указать ссылку на картинку. Если этот параметр указан, параметр $feed будет отменен.
По умолчанию: ''
walker(объект)
Расширение объекта (класса), который предназначен для создание списка категорий. Передаваемый параметру объект - это расширение для класса Walker_Category или Walker.
По умолчанию: 'Walker_Category'

Примеры

#1 Сортировка по алфавиту

Для того, чтобы отсортировать категории по алфавиту (orderby=name) и включить в список только категории с ID равными 16, 3, 9 и 5 (include=3,5,9,16), можно использовать следующий код:

<ul>
	<?php wp_list_categories('orderby=name&include=3,5,9,16'); ?>
</ul>

#2 Сортировка по названию

Следующий пример сортирует категории по названию (orderby=name), показывает количество записей в каждой категории (show_count=1) и исключает из списка категорию с ID 10 (exclude=10):

<ul>
	<?php wp_list_categories('orderby=name&show_count=1&exclude=10'); ?>
</ul>

#3 Уберем заголовок списка категорий

С помощью обнуления параметра title_li. По умолчанию этот параметр равен __('Categories'), если установить его в null или '', заголовок списка не будет показан вообще. Следующий пример исключает категории 4 и 7, и убирает заголовок списка категорий:

<ul>
	<?php wp_list_categories('exclude=4,7&title_li='); ?>
</ul>

#4 Выводим только указанные рубрики

Этот пример покажет список только из категорий с ID 9, 5 и 23, и изменит заголовок списка на Поэзия, который будет заключен в теги <h2>:

<ul>
	<?php wp_list_categories('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?>
</ul>

#5 Выведем только дочерние категории

Для того, чтобы вывести только категории вложенные в категорию 8 (child_of=8) и отсортировать их по ID (orderby=id), так же показать количество записей в каждой категории (show_count=1) и убрать из атрибута title описание категорий (use_desc_for_title=0) используйте следующий вызов функции wp_list_categories:

<ul>
	  <?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0&child_of=8'); ?>
</ul>

#6 Удалим скобки, в которые обрамляется количество записей в каждой категории

Для этого получим список категорий в переменную (echo=0) и пропустим её через php функцию str_replace(), которая удалит скобки:

<?php
$cats = wp_list_categories('echo=0&show_count=1&title_li=<h2>Категории</h2>');
$cats = str_replace( ['(',')'], '', $cats );
echo $cats;
?>

#7 Покажем список категорий со ссылкой на RSS-ленту

Для этого используем параметр feed=RSS, так же в этом примере список будет отсортирован по названию категорий (orderby=name) и у каждой категории будет показано количество записей (show_count=1):

<ul>
   <?php wp_list_categories('orderby=name&show_count=1&feed=RSS'); ?>
</ul>

#7.1 Если нужно показать ссылку-картинку вместо текста ссылки RSS фида, то используем параметр feed_image:

<ul>
   <?php wp_list_categories('orderby=name&show_count=1&feed_image=/images/rss.gif'); ?>
</ul>

#8 Выводим список произвольной (пользовательской) таксономии

С версии 3.0 стало возможно выводить списки произвольных таксономий через параметр taxonomy. Так же в этом примере показывается как передавать параметры не строкой, а массивом:

<?php
// список разделов произвольной таксономии genre

$args = array(
  'taxonomy'     => 'genre', // название таксономии
  'orderby'      => 'name',  // сортируем по названиям
  'show_count'   => 0,       // не показываем количество записей
  'pad_counts'   => 0,       // не показываем количество записей у родителей
  'hierarchical' => 1,       // древовидное представление
  'title_li'     => ''       // список без заголовка
);
?>

<ul>
<?php wp_list_categories( $args ); ?>
</ul>

#9 CSS классы для стилизации li списка

CSS Классы создается автоматически функцией wp_list_categories(). Начальное обрамление (в тег ul) задается произвольно, поэтому класс списку можно задать произвольный. А для li тега используются следующие css классы:

li.categories { ... }  /* общий селектор */
li.cat-item { ... }
li.cat-item-7 { ... }  /* Рубрика с ID 7 */
li.current-cat { ... }
li.current-cat-parent { ... }
ul.children { ... }

Заметки

Добавленные параметры в разных версиях:

  • 2.3.0 — echo
  • 2.5.0 — depth
  • 2.6.0 — current_category
  • 2.7.1 — exclude_tree
  • 2.9 — pad_counts
  • 3.0 — taxonomy
  • 4.4 — hide_title_if_empty и separator. current_category стал не обязательным

Код wp list categories: wp-includes/category-template.php VER 5.1.1

<?php
function wp_list_categories( $args = '' ) {
	$defaults = array(
		'child_of'            => 0,
		'current_category'    => 0,
		'depth'               => 0,
		'echo'                => 1,
		'exclude'             => '',
		'exclude_tree'        => '',
		'feed'                => '',
		'feed_image'          => '',
		'feed_type'           => '',
		'hide_empty'          => 1,
		'hide_title_if_empty' => false,
		'hierarchical'        => true,
		'order'               => 'ASC',
		'orderby'             => 'name',
		'separator'           => '<br />',
		'show_count'          => 0,
		'show_option_all'     => '',
		'show_option_none'    => __( 'No categories' ),
		'style'               => 'list',
		'taxonomy'            => 'category',
		'title_li'            => __( 'Categories' ),
		'use_desc_for_title'  => 1,
	);

	$r = wp_parse_args( $args, $defaults );

	if ( ! isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) {
		$r['pad_counts'] = true;
	}

	// Descendants of exclusions should be excluded too.
	if ( true == $r['hierarchical'] ) {
		$exclude_tree = array();

		if ( $r['exclude_tree'] ) {
			$exclude_tree = array_merge( $exclude_tree, wp_parse_id_list( $r['exclude_tree'] ) );
		}

		if ( $r['exclude'] ) {
			$exclude_tree = array_merge( $exclude_tree, wp_parse_id_list( $r['exclude'] ) );
		}

		$r['exclude_tree'] = $exclude_tree;
		$r['exclude']      = '';
	}

	if ( ! isset( $r['class'] ) ) {
		$r['class'] = ( 'category' == $r['taxonomy'] ) ? 'categories' : $r['taxonomy'];
	}

	if ( ! taxonomy_exists( $r['taxonomy'] ) ) {
		return false;
	}

	$show_option_all  = $r['show_option_all'];
	$show_option_none = $r['show_option_none'];

	$categories = get_categories( $r );

	$output = '';
	if ( $r['title_li'] && 'list' == $r['style'] && ( ! empty( $categories ) || ! $r['hide_title_if_empty'] ) ) {
		$output = '<li class="' . esc_attr( $r['class'] ) . '">' . $r['title_li'] . '<ul>';
	}
	if ( empty( $categories ) ) {
		if ( ! empty( $show_option_none ) ) {
			if ( 'list' == $r['style'] ) {
				$output .= '<li class="cat-item-none">' . $show_option_none . '</li>';
			} else {
				$output .= $show_option_none;
			}
		}
	} else {
		if ( ! empty( $show_option_all ) ) {

			$posts_page = '';

			// For taxonomies that belong only to custom post types, point to a valid archive.
			$taxonomy_object = get_taxonomy( $r['taxonomy'] );
			if ( ! in_array( 'post', $taxonomy_object->object_type ) && ! in_array( 'page', $taxonomy_object->object_type ) ) {
				foreach ( $taxonomy_object->object_type as $object_type ) {
					$_object_type = get_post_type_object( $object_type );

					// Grab the first one.
					if ( ! empty( $_object_type->has_archive ) ) {
						$posts_page = get_post_type_archive_link( $object_type );
						break;
					}
				}
			}

			// Fallback for the 'All' link is the posts page.
			if ( ! $posts_page ) {
				if ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) ) {
					$posts_page = get_permalink( get_option( 'page_for_posts' ) );
				} else {
					$posts_page = home_url( '/' );
				}
			}

			$posts_page = esc_url( $posts_page );
			if ( 'list' == $r['style'] ) {
				$output .= "<li class='cat-item-all'><a href='$posts_page'>$show_option_all</a></li>";
			} else {
				$output .= "<a href='$posts_page'>$show_option_all</a>";
			}
		}

		if ( empty( $r['current_category'] ) && ( is_category() || is_tax() || is_tag() ) ) {
			$current_term_object = get_queried_object();
			if ( $current_term_object && $r['taxonomy'] === $current_term_object->taxonomy ) {
				$r['current_category'] = get_queried_object_id();
			}
		}

		if ( $r['hierarchical'] ) {
			$depth = $r['depth'];
		} else {
			$depth = -1; // Flat.
		}
		$output .= walk_category_tree( $categories, $depth, $r );
	}

	if ( $r['title_li'] && 'list' == $r['style'] && ( ! empty( $categories ) || ! $r['hide_title_if_empty'] ) ) {
		$output .= '</ul></li>';
	}

	/**
	 * Filters the HTML output of a taxonomy list.
	 *
	 * @since 2.1.0
	 *
	 * @param string $output HTML output.
	 * @param array  $args   An array of taxonomy-listing arguments.
	 */
	$html = apply_filters( 'wp_list_categories', $output, $args );

	if ( $r['echo'] ) {
		echo $html;
	} else {
		return $html;
	}
}

Cвязанные функции

Из метки: Список (wp_list списки)

Еще из раздела: Рубрики

Еще из тегов шаблона: Таксономии: рубрики, метки, ...

81 коммент
Полезные 7 Вопросы 6 Все
  • @ Владимир cайт: lfk.dp.ua

    exclude_tree - исключает из вывода категорию и все подкатегории данной категории. Крайне полезная штука.

    Ответить8 лет назад #
    • Kama7376

      Согласен. Не даром эту возможность добавили в версии 2.7.1.

      Ответить8 лет назад #
  • Дмитрий cайт: v360.ru

    Для древовидных структур вида:

    Cat1
    	SubCat11
    	SubCat12
    Cat2
    	SubCat21

    Функция формирует ссылки вида:

    <a href="/cat1/">Cat1</a>
    	<a href="/subcat11/">SubCat11</a>
    	<a href="/subcat12/">SubCat12</a>
    	...
    	...

    Можно ли как-то задать вывод в виде пути?

    <a href="/cat1/">Cat1</a>
    	<a href="/cat1/subcat11/">SubCat11</a>
    	<a href="/cat1/subcat12/">SubCat12</a>
    	...
    	...
    Ответить7.9 лет назад #
    • Kama7376

      Не совсем понял суть проблемы, потому что для субкатегорий создается ссылка вида /cat1/subcat12/, вроде unknw .

      Мне видятся 2 варианта внедрится и изменить получаемый код:

      1. через фильтр:
      add_filter('wp_list_categories', 'my_function');
      function my_function($html){
         $out = preg_replace('/exp/i', '', $html);
         // изменяем $html код и возвращаем его
         return $out;
      }
      1. Создать свой метод для класса Walker_Category и в аргументе walker указать его название. Для этого нужно изучить сам класс Walker_Category и знать php, достаточно хорошо.
      Ответить7.9 лет назад #
      • Дмитрий cайт: v360.ru

        Спасибо за подробный ответ и должен извиниться, что ввел в заблуждение. Причиной такого формирования url был когда-то давно установленный плагин Remove Parents, который, как оказалось, удалял не только слово "category/" из адреса, а всех родителей.

        В итоге заменил его на пару строк кода:

        //Удаляем из ЧПУ адреса "category/"
        add_filter('category_link', 'kill_url_cat');
        function kill_url_cat($namedcatpath) {
        	$bloghome = get_bloginfo( 'home' );
        	return preg_replace('%' . $bloghome . '/category/(.*?)$%i', $bloghome . '/$1', $namedcatpath);
        }
        Ответить7.9 лет назад #
  • Андрей cайт: nabolevshee.ru

    Прекрасный мануал.
    У меня вопрос.
    По умолчанию в WP само слово "Категории" заключено в ...
    А сами категории нет.
    Вот сейчас пытаюсь название блога в h1 поставить - это удалось.
    А вот сами названия категорий никак не могу h2 заключить.

    Ответить7.5 лет назад #
  • @ Алексей cайт: lob1av.pp.ru

    Тимур замечательный перевод, спасибо.
    Частенько поглядываю и использую как шпаргалку.
    Сегодня вот понадобилось убрать "Нет рубрик"... Думаю неплохо было бы описать и эту недокументированную фишку: указываем

    "show_option_none="

    и ничего лишнего не придумываем smile

    П.С. Заметил на сайте один небольшой косячок - не открываются линки на страницы коментаторов в Опере, в других браузерах вроде порядок.

    2
    Ответить7.5 лет назад #
    • Kama7376

      Добавил аргумент show_option_none и его описание. Только он бестолковый совсем smile
      За баг спс, поправил: опера не понимает событие onСlick на нестандартных html тегах, вроде: <site>.

      Ответить7.5 лет назад #
      • @ Алексей cайт: lob1av.pp.ru

        Ну почему же бестолковый? Иногда бывает нужно. Например, здесь: http://olgagrankina.ru/ наименование вкладок - это страницы, после которых последняя (если есть) - это рубрика. А если нет записей в этой рубрике, то выйдет соответственно

        __('No categories')

        тобишь в русском переводе "Нет рубрик", что есть быть не гуд.

        1
        Ответить7.5 лет назад #
  • Не подскажите, как прилепить стиль к выводу рубрик. Хочу чтобы рубрики были в аккордеон спрятаны и при нажатии выезжали под рубрики

    Ответить7.1 лет назад #
    • Kama7376

      Может подстроиться под уже имеющийся стиль? Потому что прилепить немного сложно - только через регулярки наверное.

      Ответить7.1 лет назад #
      • Дело в том, что у меня в одной рубрике под рубрик где то около 100 и аккардеон сам туда уже напрашивается mosking

        Ответить7.1 лет назад #
  • Денис

    А не подскажете как вывести ВСЕ дочерние категории ВСЕХ категорий?
    'child_of' использовать сложно, потому что родителей может быть много + они могут добавляться.

    1
    Ответить7.1 лет назад #
    • Kama7376

      Точно не знаю, но как один из вариантов: получить ID всех категорий первого уровня и по ним вывести все нижнего уровня.

      Ответить7 лет назад #
  • Данила

    Обновил блог с WP2.9 до 3.3 - больше ничего не делал. Функция wp_list_categories стала чуть иначе генерить код - теперь в тег LI не пишется идентификатор категории (например, id="cat-id-3"), т.е. раньше получался такой HTML:
    Код:

    <li id="cat-id-4" class="cat-item cat-item-4 current-cat">

    а теперь - такой:
    Код:

    <li class="cat-item cat-item-4 current-cat">

    все стили поехали, а верстка сложная. Можно ли как-то вернуть формирование кода с ID?

    Ответить7 лет назад #
    • Kama7376

      Не знаю, идей нет. Прочитайте еще раз мануал, может что-то упустили? Возможно безвозвратно был изменен вывод разработчиками...

      Ответить7 лет назад #
  • Kerk cайт: www.vladifoto.ru

    Уважаемые, хотя мой совокупный стаж работы в сети уже 15 лет, в WP ориентирусь весьма плохо. Прочитал данный пост внимательно, очень благодарен автору и комментирующим - это как раз то, что мне нужно, но не понял самого главного:

    КАК это реализовать? Где писать данную в начале строку кода, в каком именно файле темы WP и в каком месте?

    Большая просьба помочь разобраться в данном вопросе, ибо очень надо достигнуть следующего: чтобы на заданной странице выводились ссылки на категории определенной группы. Скажем, есть сайт газеты, где в архиве каждый выпуск обозначен категорией. Нажимая на категорию-номер получаем все посты этой категории, т.е. все материалы номера.

    Я хочу добиться следующего: чтобы на странице, скажем, с номерами 2006-го года выводились кликабельным списком только категории, созданные в этом году. И так далее.

    Ответить7 лет назад #
    • Kama7376

      Это лишь описание функции. Как и где она используется не входит в задачи этого поста.

      Все функции ВП можно использовать где угодно: в шаблоне, в плагинах. В каком месте: там где нужен список.

      Выводить категории созданные в указанном году, не получится, потому что дата создания категории не записывается никуда и узнать её соответственно не получится.

      Ответить7 лет назад #
  • Orio

    можно как-нибудь сделать такое:

    тег wp_list_categories('style=none') дает такой html-код:

    <a href="http://site.ru/category/1/" title="1">1</a><br />
    <a href="http://site.ru/category/2/" title="2">2</a><br />

    а нужно:

    <a class="one" href="http://site.ru/category/1/" title="1">1</a>
    <a class="one" href="http://site.ru/category/2/" title="2">2</a>

    т.е. надо добавлять класс в тег "а" и в конце убирать "br".
    желательно если можно без правки исходников wp, т.к. эта функция еще используется для карты сайта (формирует в виде списка).

    не получается никак sad

    Ответить7 лет назад #
    • Kama7376

      Нужно получить данные и удалить из них все br и заменить '<a' на '<a class="one"'

      $cat_list = wp_list_categories('style=none&echo=0');
      $cat_list = str_replace('<br />', '', $cat_list);
      $cat_list = str_replace('<a ', '<a class="one" ', $cat_list);
      echo $cat_list;
      Ответить7 лет назад #
      • Ибрагим

        Подскажите пожалуйста, как задать теперь классы ссылкам на выведенные мною рубрики с wp_list_categories($args) ?

        Ответить15 дней назад #
  • Серега

    Добрый день, подскажите как сделать вывод вложенных категорий именно той категории в которой находишься?

    Ответить6.7 лет назад #
    • AlexBelij cайт: itfusion.by

      Получите сначала id категории, а потом подставьте значение для параметра child_of=
      Так получаем id категории, в которой находимся:

      function getCurrentCatID(){  
        global $wp_query;  
        if(is_category() || is_single()){  
      $cat_ID = get_query_var('cat');  
        }  
        return $cat_ID;  
       }
      1
      Ответить6.5 лет назад #
      • @ Вадим

        Данная функция выводит именно ID категории/подкатегории в которой мы находимся. Но не могу сообразить как узнать именно ID родителя?
        -Беременность
        --Анализы при беременности
        --Беременность на ранних сроках

        Если мы будем находиться в "Анализы при беременности" то данная функция покажет ID именно этой дочерней категории. Интересует как узнать находясь в дочерней ID родителя ? Чтобы при переходе в любую из дочерних или еще ниже видеть главного Родителя?
        Надеюсь, что понятно объяснил.

        Ответить5.8 лет назад #
      • @ Вадим

        Можете не отвечать, уже сам разобрался, если кому надо то вот ..

        global $wp_query;
        $category = $wp_query->get_queried_object();
        $cat_parent_ID = $category->parent;

        1
        Ответить5.8 лет назад #
Здравствуйте, !     Войти . Зарегистрироваться