Content management system Grav-CMS中的子导航

Content management system Grav-CMS中的子导航,content-management-system,grav,Content Management System,Grav,我想为我的Grav主题制作一个subnav。我已经看到了一个关于这个话题的问题: {%block-navigation%} {%宏循环(页)%} {page.children%中p的%s} {%如果p.visible%} {%set active_page=(p.active或p.activeChild)?'active':'%} {%如果p.children.count>0%} {{{u self.loop(p)}} {%endif%} {%endif%} {%endfor%} {%endm

我想为我的Grav主题制作一个subnav。我已经看到了一个关于这个话题的问题:

{%block-navigation%}
{%宏循环(页)%}
{page.children%中p的%s}
{%如果p.visible%}
{%set active_page=(p.active或p.activeChild)?'active':'%}
{%如果p.children.count>0%}
{{{u self.loop(p)}}
{%endif%}
{%endif%}
{%endfor%}
{%endmacro%}
{%endblock%}
{{{u self.loop(pages)}
我遇到的问题是,使用我的代码,页面在导航中会列出两次,这是因为下拉列表
div
中有
a
-标记

有没有一种方法可以让
a
-标签与我在代码中编写的所有信息一起出现在下拉列表中?而且它在导航中只出现一次

谢谢你的回答

{%block-navigation%}
{% block navigation %}
    {% macro loop(page) %}
        {% for p in page.children %}
            {% if p.visible %}
            {% set active_page = (p.active or p.activeChild) ? 'active' : '' %}
                <div>
                    {% if p.children.count > 0 %}
                    <div class="dropdown">
                        <a href="{{ p.url }}" class="btn btn-nav dropdown-toggle" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                            {{ p.menu }}
                            <span class="icon icon--bottom"></span>
                        </a>
                        <div class="dropdown-menu" aria-labelledby="dropdownMenulink" x-placement="bottom-start">
                            {{ _self.loop(p) }}
                        </div>
                    </div>
                    {% else %}
                        <a href="{{ p.url }}" class="btn btn-nav" role="button">
                            {{ p.menu }}
                        </a>
                    {% endif %}
                </div>
            {% endif %}
        {% endfor %}
    {% endmacro %}
{% endblock %}

<div class="topics" style="display: flex;">
    {{ _self.loop(pages) }}
</div>
{%宏循环(页)%} {page.children%中p的%s} {%如果p.visible%} {%set active_page=(p.active或p.activeChild)?'active':'%} {%如果p.children.count>0%} {{{u self.loop(p)}} {%else%} {%endif%} {%endif%} {%endfor%} {%endmacro%} {%endblock%} {{{u self.loop(pages)}

这是我使用的代码,而不是我在问题中编写的代码

我查看了反物质主题,找到了问题的解决方案。如果p.children.count>0&}必须放在零件前面。我最终为正常状态创建了一个“{%else%}”
{% block navigation %}
    {% macro loop(page) %}
        {% for p in page.children %}
            {% if p.visible %}
            {% set active_page = (p.active or p.activeChild) ? 'active' : '' %}
                <div>
                    {% if p.children.count > 0 %}
                    <div class="dropdown">
                        <a href="{{ p.url }}" class="btn btn-nav dropdown-toggle" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                            {{ p.menu }}
                            <span class="icon icon--bottom"></span>
                        </a>
                        <div class="dropdown-menu" aria-labelledby="dropdownMenulink" x-placement="bottom-start">
                            {{ _self.loop(p) }}
                        </div>
                    </div>
                    {% else %}
                        <a href="{{ p.url }}" class="btn btn-nav" role="button">
                            {{ p.menu }}
                        </a>
                    {% endif %}
                </div>
            {% endif %}
        {% endfor %}
    {% endmacro %}
{% endblock %}

<div class="topics" style="display: flex;">
    {{ _self.loop(pages) }}
</div>