Здравствуйте!
Чтобы создать иерархическое древовидное выпадающее меню рубрик на WordPress в виджете, вы можете использовать следующий код на PHP. Этот код можно вставить в ваш PHP-виджет или в файл вашей темы (например, в `functions.php` или в файл шаблона).
Вот код для отображения иерархического списка рубрик:
```php
<?php
function custom_category_menu() {
$args = array(
'taxonomy' => 'category', // Замените 'category', если используете другую таксономию
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => true,
);
$categories = get_categories($args);
if (!empty($categories)) {
echo '<ul class="custom-category-menu">';
foreach ($categories as $category) {
if ($category->parent == 0) {
// Выводим родительскую категорию
echo '<li>' . '<a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a>';
// Проверяем, есть ли дочерние категории
$children = get_categories(array('child_of' => $category->term_id, 'hide_empty' => true));
if ($children) {
echo '<ul>';
foreach ($children as $child) {
echo '<li><a href="' . get_category_link($child->term_id) . '">' . $child->name . '</a></li>';
}
echo '</ul>';
}
echo '</li>';
}
}
echo '</ul>';
} else {
echo 'Нет рубрик для отображения.';
}
}
// Используйте эту функцию в вашем виджете PHP-кода:
custom_category_menu();
?>
```
### Пошаговые действия
1. **Добавьте код**: Вставьте приведенный выше код в ваш виджет PHP-кода, или добавьте его в файл `functions.php` вашей темы.
2. **Используйте функцию**: Внутри виджета или в любом месте шаблона, где требуется отобразить меню, вызовите функцию `custom_category_menu()`.
3. **Стилизация**: Вы можете стилизовать ваше меню, добавив CSS к классам `.custom-category-menu` и `li` в вашем файле стилей.
### Примечания
- Вы можете заменить `'category'` на вашу собственную таксономию, если это необходимо.
- Убедитесь, что в вашей установке WordPress включены рубрики, и у вас есть рубрики, которые можно отображать.
Этот код создаст иерархическое меню рубрик, где будут отображаться родительские рубрики, и все дочерние будут вложены в соответствующие родительские.