Я показываю категории верхнего уровня, используя следующие:
$context['categories'] = Timber::get_terms('category');
$categories = get_categories( array(
'hide_empty' => '0',
'exclude' => '1',
'orderby' => 'id',
'order' => 'ASC'
) );
$context['categories'] = $categories;
{% for cat in categories %}
<li {% if term.slug == cat.slug %}class="active"{% endif %}><a href="{{blog.link}}category/{{cat.slug}}">{{cat.name}}</a></li>
{% endfor %}
Но мне нужно отобразить подкатегории в раскрывающемся списке (начальная загрузка 4). Но я не уверен, как получить доступ к ним? Я думаю, что они уже доступны с чем-то вроде cat.child
?
Хорошо, это намного проще, чем я думал,
Вы (и я) делали это совершенно неправильно.
Сначала вы должны перейти к темам и выбрать меню.
тогда вы должны указать, что все ваши подкатегории являются дочерними для той категории, которую вы хотите, чтобы они имели.
Как только вы это сделаете, вы можете просто ввести следующий код, и ваше раскрывающееся меню будет работать.
{% for item in menu.get_items %}
<li class="nav-item {{ item.classes | join(' ') }}">
{% if item.get_children %}
<div class="dropdown">
<button type="button" class="btn btn-secondary dropdown-toggle" id='dropdownMenuButton' data-toggle="dropdown" aria-haspopup="true" aria-expended="false" >
{{ item.title }}
</button>
<div class="dropdown-menu" aria-labelledby='dropdownMenuButton'>
{% for child in item.get_children %}
<a class="dropdown-item" href="{{child.link}}">{{child.title}}</a>
{% endfor %}
</div>
</div>
{% else %}
<a href="{{ item.link }}" title="{{ item.title }}" class="nav-link">{{ item.title }}</a>
{% endif %}
</li>
{% endfor %}
для меня это сработало по крайней мере
Других решений пока нет …