Здравствуйте! <br/> Я использую следующий код для вывода списка подкатегорий определенной категории: <br/> <pre><code class="php">$args = array( 'orderby' => 'name', 'title_li' => '', 'order' => 'asc', 'style' => 'list', 'hide_empty' => 0, 'use_desc_for_title' => 1, 'child_of' => 4 ); echo '<ul class="subcat align-center">' ; wp_list_categories($args); echo '</ul>';</code></pre> <br/> Можете подсказать, как добавить родительскую категорию в начало списка подкатегорий? Также важно, чтобы родительская категория была активной при нахождении в ней, то есть к ней добавлялся класс <b>current-cat</b>?
Чтобы добавить родительскую категорию в начало списка подкатегорий с использованием функции `wp_list_categories` в WordPress, вам потребуется немного изменить ваш код. Вам нужно сначала получить информацию о родительской категории, а затем вывести её перед списком подкатегорий. Чтобы активировать класс `current-cat` для родительской категории, вы можете использовать дополнительную логику. Вот пример кода, который делает это: ```php <?php $parent_cat_id = 4; // Замените на ID вашей родительской категории // Получаем информацию о родительской категории $parent_cat = get_category($parent_cat_id); // Проверяем, что родительская категория существует if ($parent_cat) { // Определяем, активна ли родительская категория $is_active = (is_category($parent_cat_id)) ? 'current-cat' : ''; // Выводим родительскую категорию echo '<ul class="subcat align-center">'; echo '<li class="'.$is_active.'"><a href="'.get_category_link($parent_cat_id).'">'.$parent_cat->name.'</a></li>'; // Параметры для вывода подкатегорий $args = array( 'orderby' => 'name', 'order' => 'asc', 'style' => 'list', 'hide_empty' => 0, 'child_of' => $parent_cat_id, 'title_li' => '' ); // Выводим подкатегории wp_list_categories($args); echo '</ul>'; } ?> ``` ### Объяснение: 1. **Получение родительской категории**: Используется функция `get_category($parent_cat_id)`, чтобы получить объект родительской категории по её ID. 2. **Проверка активности**: Переменная `$is_active` устанавливается в `current-cat`, если текущая страница принадлежит родительской категории. 3. **Вывод**: Сначала выводим родительскую категорию, а затем вызываем `wp_list_categories` для вывода подкатегорий. Теперь, когда вы посетите страницу в родительской категории, она будет выделена классом `current-cat`.
<?php $parent_id = 4; // ID родительской категории // Получаем родительскую категорию $parent_category = get_category($parent_id); // Получаем подкатегории $args = array( 'orderby' => 'name', 'order' => 'asc', 'style' => 'list', 'hide_empty' => 0, 'child_of' => $parent_id, 'title_li' => '', 'use_desc_for_title' => 1 ); // Проверяем, находимся ли мы в родительской категории или её подкатегории $current_category = get_queried_object(); $current_class = ''; if ($current_category && $current_category->term_id == $parent_id) { $current_class = 'current-cat'; } echo '<ul class="subcat align-center">'; // Выводим родительскую категорию echo '<li class="cat-item cat-item-' . $parent_category->term_id . ' ' . $current_class . '">'; echo '<a href="' . get_category_link($parent_category->term_id) . '">' . $parent_category->name . '</a>'; echo '</li>'; // Выводим подкатегории wp_list_categories($args); echo '</ul>'; ?>
$parent_id = 4; — идентификатор родительской категории, которую вы хотите вывести.
get_category() — функция для получения родительской категории.
wp_list_categories() — стандартная функция для вывода подкатегорий.
get_queried_object() — проверяем, находимся ли мы на странице родительской категории или её подкатегории.
current-cat — если пользователь находится в родительской категории, то добавляется класс current-cat.
Этот код выводит родительскую категорию первой, добавляет к ней класс current-cat, если пользователь находится на её странице, а затем выводит список подкатегорий.